Menu
CoddyTech

Rotate Image

أُعطيت شبكة n × n من الأعداد الصحيحة، على شكل قائمة لكل صف. أدرها ربع دورة باتجاه عقارب الساعة وأعِدها. يصبح الصف العلوي العمود الأيمن، ويصبح الصف الثاني العمود الذي على يساره، وهكذا: تنتقل القيمة عند (i, j) إلى (j, n-1-i). يمكنك تعديل الشبكة في مكانها؛ أَعِدها.

الدالة

rotateImage(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
الشبكة المربعة، قائمة داخلية واحدة لكل صف
تُرجعinteger-2d-array
دارت المصفوفة 90 درجة باتجاه عقارب الساعة

القيود

  • n == matrix.length == matrix[i].length
  • 1 ≤ n ≤ 70
  • -1000 ≤ matrix[i][j] ≤ 1000

أمثلة

المدخلات
matrix = [[3, 7, 1], [9, 5, 2], [4, 8, 6]]
المخرجات
[[4, 9, 3], [8, 5, 7], [6, 2, 1]]
الشرح
يصبح الصف الأول، 3 7 1، العمود الأخير عند قراءته من الأعلى إلى الأسفل. ويصبح العمود الأول، 3 9 4، عند قراءته من الأسفل إلى الأعلى، الصف الأول [4, 9, 3]. وتبقى القيمة الوسطى 5 في مكانها.
challenge icon

سؤال إضافي

ما الخطوتان الموضعيّتان اللتان تديران المصفوفة 180 درجة، وهل يمكنك فعل ذلك بتمريرة واحدة من عمليات التبديل؟

إعادة ضبط الشيفرة
def rotateImage(matrix):
    # اكتب الكود هنا

اختبار #1

اختبار #2

وسيط

matrix = [[3, 7, 1], [9, 5, 2], [4, 8, 6]]

الإخراج المتوقع

[[4, 9, 3], [8, 5, 7], [6, 2, 1]]