Giả sử chúng ta có một n x n ma trận 2D. Chúng ta phải xoay ma trận này 90 độ theo chiều kim đồng hồ. Vì vậy, nếu ma trận giống như-
1 | 5 | 7 |
9 | 6 | 3 |
2 | 1 | 3 |
Sau đó, đầu ra sẽ là
2 | 9 | 1 |
1 | 6 | 5 |
3 | 3 | 7 |
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- Xem xét temp_mat =[], col:=length của ma trận - 1
- cho col trong phạm vi từ 0 đến độ dài của ma trận
- tạm thời:=[]
- cho hàng trong phạm vi độ dài của ma trận - 1 xuống -1
- thêm ma trận [hàng, cột] trong tạm thời
- thêm nhiệt độ vào temp_mat
- cho tôi trong phạm vi từ 0 đến chiều dài của ma trận
- cho j trong phạm vi từ 0 đến độ dài của ma trận
- ma trận [i, j]:=temp_mat [i, j]
- cho j trong phạm vi từ 0 đến độ dài của ma trận
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Mã mẫu (Python)
class Solution(object): def rotate(self, matrix): temp_matrix = [] column = len(matrix)-1 for column in range(len(matrix)): temp = [] for row in range(len(matrix)-1,-1,-1): temp.append(matrix[row][column]) temp_matrix.append(temp) for i in range(len(matrix)): for j in range(len(matrix)): matrix[i][j] = temp_matrix[i][j] return matrix ob1 = Solution() print(ob1.rotate([[1,5,7],[9,6,3],[2,1,3]]))
Đầu vào
[[1,5,7],[9,6,3],[2,1,3]]
Đầu ra
[[2, 9, 1], [1, 6, 5], [3, 3, 7]]