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]]