Você está aqui: Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
|
Como rotacionar os elementos de um vetor de inteiros n vezes para a direita - Solução usando inversão do array - Desafio de Programação Resolvido em JavaQuantidade de visualizações: 610 vezes |
|
Pergunta/Tarefa: Dado o vetor: // vamos criar um vetor de inteiros int valores[] = {1, 6, 9, 3, 7, 8, 5, 2}; Importante: a solução que apresentamos nesta dica usa uma técnica que consiste em inverter o array 3 vezes. Na primeira vez todo o vetor é invertido. Na segunda vez apenas os n elementos são invertidos. Finalmente, o restante dos elementos quant - n são invertidos. Aqui n representa a quantidade de rotações que serão feitas e quant é a quantidade de elementos no array. Na pesquisa que fizemos, essa é forma mais eficiente de resolver este desafio. Sua saída deverá ser parecida com: Array na ordem original: 1 6 9 3 7 8 5 2 Primeira inversão do array 2 5 8 7 3 9 6 1 Segunda inversão do array 8 5 2 7 3 9 6 1 Terceira inversão do array 8 5 2 1 6 9 3 7 Array depois de rotacionar 3 vezes: 8 5 2 1 6 9 3 7 Veja a resolução comentada deste exercício em Java:
A solução que apresentamos aqui usa a inversão de array, o que torna essa abordagem uma das mais eficientes. Em outras dicas do site nós apresentamos uma solução para este desafio usando força-bruta. A força-bruta não é a melhor abordagem, mas pode ser mais fácil de ser entendida por iniciantes em programação. |
|
![]() |
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
Android Java - Como detectar um clique em um botão do Android usando o evento onClick no XML de layout |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |