สมมติว่าเรามีเมทริกซ์สี่เหลี่ยมจัตุรัส เราต้องหมุนมัน 90 องศา ทวนเข็มนาฬิกา
ตัวอย่าง เมทริกซ์ต้นฉบับ:
| 1 | 4 | 7 |
| 2 | 5 | 8 |
| 3 | 6 | 9 |
| 7 | 8 | 9 |
| 4 | 5 | 6 |
| 1 | 2 | 3 |
ขั้นตอนการแก้ปัญหา
- ถ้าเมทริกซ์ว่าง คืนค่าลิสต์ว่าง
- กำหนด
n= จำนวนแถวของเมทริกซ์ - สำหรับแต่ละแถวในเมทริกซ์ ให้กลับลำดับแถว (reverse)
- วนลูป
iจาก 0 ถึงn-1:- วนลูป
jจาก 0 ถึงi-1:- สลับ
matrix[i][j]และmatrix[j][i]
- สลับ
- วนลูป
- คืนค่าเมทริกซ์
ตัวอย่างโค้ด Python
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))
# Output: [[7, 8, 9], [4, 5, 6], [1, 2, 3]]
อินพุต / เอาต์พุต
Input: [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Output: [[7, 8, 9], [4, 5, 6], [1, 2, 3]]