Menu
CoddyTech

Rotate Array

Você recebe um array de números inteiros nums e um número k. Gire o array para a direita em k passos: em cada passo, todos os valores se movem uma posição para a direita, e o último valor retorna ao início. Retorne o array girado.

k pode ser muito maior que o comprimento do array.

Função

rotate(nums: integer-array, k: integer) → integer-array
numsinteger-array
o array de números inteiros a ser rotacionado
kinteger
quantos passos girar para a direita
Retornainteger-array
nums rotacionado para a direita em k passos

Restrições

  • 1 ≤ nums.length ≤ 5000
  • -104 ≤ nums[i] ≤ 104
  • 0 ≤ k ≤ 109

Exemplos

Entrada
nums = [4, 9, 1, 6, 3]k = 2
Saída
[6, 3, 4, 9, 1]
Explicação
Dois passos para a direita levam os dois últimos valores, 6 e 3, para o início. Os outros três valores se movem duas posições para a direita e mantêm a ordem: [6, 3, 4, 9, 1].
challenge icon

Para ir além

Você consegue fazer uma rotação no próprio lugar, movendo cada valor diretamente para (i + k) mod n e levando adiante o valor que ele desloca? Quantos ciclos isso forma?

Redefinir código
def rotate(nums, k):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

nums = [4, 9, 1, 6, 3]
k = 2

Saída Esperada

[6, 3, 4, 9, 1]