Menu
CoddyTech

Rotate Array

Vous recevez un tableau d’entiers nums et un nombre k. Faites pivoter le tableau vers la droite de k positions : à chaque étape, chaque valeur se déplace d’une place vers la droite, et la dernière valeur revient au début. Renvoyez le tableau pivoté.

k peut être bien supérieur à la longueur du tableau.

Fonction

rotate(nums: integer-array, k: integer) → integer-array
numsinteger-array
le tableau d’entiers à faire pivoter
kinteger
combien d’étapes pour tourner à droite
Renvoieinteger-array
nums décalé vers la droite de k positions

Contraintes

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

Exemples

Entrée
nums = [4, 9, 1, 6, 3]k = 2
Sortie
[6, 3, 4, 9, 1]
Explication
Deux pas vers la droite amènent les deux dernières valeurs, 6 et 3, au début. Les trois autres valeurs se déplacent de deux places vers la droite et conservent leur ordre : [6, 3, 4, 9, 1].
challenge icon

Pour aller plus loin

Peux-tu effectuer une rotation sur place en déplaçant chaque valeur directement à (i + k) mod n et en poursuivant avec la valeur qu’elle déloge ? Combien de cycles cela forme-t-il ?

Réinitialiser le code
def rotate(nums, k):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

[6, 3, 4, 9, 1]