Menu
CoddyTech

Rotate Array

Recibes un arreglo de enteros nums y un número k. Rota el arreglo hacia la derecha k pasos: en cada paso, cada valor se mueve una posición a la derecha y el último valor vuelve al principio. Devuelve el arreglo rotado.

k puede ser mucho mayor que la longitud del arreglo.

Función

rotate(nums: integer-array, k: integer) → integer-array
numsinteger-array
el arreglo de enteros que se va a rotar
kinteger
cuántos pasos girar hacia la derecha
Devuelveinteger-array
nums rotado a la derecha k pasos

Restricciones

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

Ejemplos

Entrada
nums = [4, 9, 1, 6, 3]k = 2
Salida
[6, 3, 4, 9, 1]
Explicación
Dos pasos hacia la derecha llevan los dos últimos valores, 6 y 3, al principio. Los otros tres valores se desplazan dos posiciones a la derecha y mantienen su orden: [6, 3, 4, 9, 1].
challenge icon

Para ir más allá

¿Puedes rotar in situ moviendo cada valor directamente a (i + k) mod n y llevando consigo el valor que desplaza? ¿Cuántos ciclos forma eso?

Restablecer código
def rotate(nums, k):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

[6, 3, 4, 9, 1]