Menu
CoddyTech

Rotate Image

Bạn được cho một lưới số nguyên n × n, mỗi hàng là một danh sách. Hãy xoay lưới một phần tư vòng theo chiều kim đồng hồ rồi trả về lưới đó. Hàng trên cùng trở thành cột ngoài cùng bên phải, hàng thứ hai trở thành cột bên trái cột đó, cứ thế tiếp tục: giá trị tại (i, j) chuyển đến (j, n-1-i). Bạn có thể thay đổi trực tiếp lưới; hãy trả về lưới đó.

Hàm

rotateImage(matrix: integer-2d-array) → integer-2d-array
matrixinteger-2d-array
lưới hình vuông, mỗi hàng có một danh sách bên trong
Trả vềinteger-2d-array
Ma trận đã xoay 90 độ theo chiều kim đồng hồ

Ràng buộc

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

Ví dụ

Đầu vào
matrix = [[3, 7, 1], [9, 5, 2], [4, 8, 6]]
Đầu ra
[[4, 9, 3], [8, 5, 7], [6, 2, 1]]
Giải thích
Hàng đầu tiên, 3 7 1, trở thành cột cuối cùng khi đọc từ trên xuống dưới. Cột đầu tiên, 3 9 4, khi đọc từ dưới lên trên, trở thành hàng đầu tiên [4, 9, 3]. Giá trị ở giữa 5 vẫn giữ nguyên vị trí.
challenge icon

Câu hỏi mở rộng

Bạn có thể thực hiện hai bước tại chỗ nào để xoay ma trận 180 độ, và có thể hoàn thành trong một lượt hoán đổi không?

Đặt lại code
def rotateImage(matrix):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Đối số

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

Đầu ra mong đợi

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