Menu
CoddyTech

Rotate Array

لديك مصفوفة من الأعداد الصحيحة nums وعدد k. أدر المصفوفة إلى اليمين بمقدار k خطوات: في كل خطوة، تنتقل كل قيمة موضعًا واحدًا إلى اليمين، وتلتف القيمة الأخيرة لتصل إلى المقدمة. أعد المصفوفة بعد تدويرها.

قد تكون قيمة k أكبر بكثير من طول المصفوفة.

الدالة

rotate(nums: integer-array, k: integer) → integer-array
numsinteger-array
مصفوفة الأعداد الصحيحة المراد تدويرها
kinteger
كم خطوة للدوران إلى اليمين
تُرجعinteger-array
الأعداد التي دُوِّرت إلى اليمين بمقدار 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]