8
8
9
9
10
10
class Solution :
11
- def rotate (self , matrix : List [List [int ]]) -> None :
11
+ def rotate1 (self , matrix : List [List [int ]]) -> None :
12
12
"""
13
13
Do not return anything, modify matrix in-place instead.
14
14
"""
@@ -17,12 +17,33 @@ def rotate(self, matrix: List[List[int]]) -> None:
17
17
matrix [i ][j ], matrix [j ][i ] = matrix [j ][i ], matrix [i ][j ]
18
18
matrix [i ] = matrix [i ][::- 1 ]
19
19
20
+ def rotate (self , matrix : List [List [int ]]) -> None :
21
+ start_row , start_column = 0 , 0
22
+ end_row , end_column = len (matrix ) - 1 , len (matrix ) - 1
23
+ while start_row < end_row :
24
+ self .rotateEdge (matrix , start_row , start_column , end_row , end_column )
25
+ start_row += 1
26
+ start_column += 1
27
+ end_row -= 1
28
+ end_column -= 1
29
+
30
+ def rotateEdge (self , matrix : list , start_row : int , start_column : int , end_row : int , end_column : int ) -> None :
31
+ times = end_row - start_row
32
+ for i in range (times ):
33
+ temp = matrix [start_row ][start_column + i ]
34
+ matrix [start_row ][start_column + i ] = matrix [end_row - i ][start_column ]
35
+ matrix [end_row - i ][start_column ] = matrix [end_row ][end_column - i ]
36
+ matrix [end_row ][end_column - i ] = matrix [start_row + i ][end_column ]
37
+ matrix [start_row + i ][end_column ] = temp
38
+
20
39
21
40
if __name__ == '__main__' :
22
41
A = [
23
- [1 , 2 , 3 ],
24
- [4 , 5 , 6 ],
25
- [7 , 8 , 9 ]
42
+ [5 , 1 , 9 , 11 ],
43
+ [2 , 4 , 8 , 10 ],
44
+ [13 , 3 , 6 , 7 ],
45
+ [15 , 14 , 12 , 16 ]
26
46
]
47
+ # Solution().rotate(A)
27
48
Solution ().rotate (A )
28
49
print (A )
0 commit comments