Menu
CoddyTech

Rotate Array

ניתן לך מערך של מספרים שלמים nums ומספר k. סובבו את המערך ימינה ב־k צעדים: בכל צעד כל ערך זז מקום אחד ימינה, והערך האחרון עובר לתחילת המערך. החזירו את המערך המסובב.

k יכול להיות גדול בהרבה מאורך המערך.

פונקציה

rotate(nums: integer-array, k: integer) → integer-array
numsinteger-array
מערך המספרים השלמים שיש לסובב
kinteger
כמה צעדים לסיבוב ימינה
מחזירהinteger-array
המערך nums מסובב ימינה ב־k צעדים

אילוצים

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

דוגמאות

קלט
nums = [4, 9, 1, 6, 3]k = 2
פלט
[6, 3, 4, 9, 1]
הסבר
שני צעדים ימינה מעבירים את שני הערכים האחרונים, 6 ו-3, אל תחילת המערך. שלושת הערכים האחרים זזים שני מקומות ימינה ושומרים על הסדר שלהם: [6, 3, 4, 9, 1].
challenge icon

שאלת המשך

האם אפשר לבצע סיבוב במקום על ידי העברת כל ערך ישירות אל (i + k) mod n והעברת הערך שהוא דוחק הלאה? כמה מחזורים זה יוצר?

איפוס הקוד
def rotate(nums, k):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנטים

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

הפלט הצפוי

[6, 3, 4, 9, 1]