Giả sử chúng ta có một ma trận vuông, chúng ta phải xoay nó 90 độ ngược chiều kim đồng hồ.
1 | 4 | 7 |
2 | 5 | 8 |
3 | 6 | 9 |
thì đầu ra sẽ là
7 | 8 | 9 |
4 | 5 | 6 |
1 | 2 | 3 |
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
nếu ma trận trống, thì
-
trả lại một danh sách trống
-
-
n:=số hàng của ma trận
-
đối với mỗi hàng trong ma trận, thực hiện
-
đảo ngược hàng
-
-
đối với tôi trong phạm vi từ 0 đến n-1, hãy thực hiện
-
đối với j trong phạm vi từ 0 đến i-1, thực hiện
-
hoán đổi ma trận [i, j] và ma trận [j, i]
-
-
-
ma trận trả về
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
class Solution: def solve(self, matrix): if not matrix or not matrix[0]: return [] n = len(matrix) for row in matrix: row.reverse() for i in range(n): for j in range(i): matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j] return matrix ob = Solution() matrix = [ [1, 4, 7], [2, 5, 8], [3, 6, 9] ] print(ob.solve(matrix))
Đầu vào
[ [1, 4, 7], [2, 5, 8], [3, 6, 9] ]
Đầu ra
[ [7, 8, 9], [4, 5, 6], [1, 2, 3]]