File tree Expand file tree Collapse file tree 1 file changed +77
-0
lines changed
Expand file tree Collapse file tree 1 file changed +77
-0
lines changed Original file line number Diff line number Diff line change 1+ '''
2+ # 48. Rotate Image
3+
4+ rotate 2d matrix 90 degree in place.
5+ 👉 transpose matrix and reverse each row.
6+
7+ - original matrix
8+ 1 2 3
9+ 4 5 6
10+ 7 8 9
11+
12+ - transpose matrix (swap i, j) (flip diagonally)
13+ 1 4 7
14+ 2 5 8
15+ 3 6 9
16+
17+ - reverse each row (horizontal flip)
18+ 7 4 1
19+ 8 5 2
20+ 9 6 3
21+ '''
22+ class Solution :
23+ '''
24+ TC: O(n^2)
25+ SC: O(1)
26+ '''
27+ def rotate (self , matrix : List [List [int ]]) -> None :
28+ n = len (matrix )
29+
30+ for i in range (n ):
31+ for j in range (i , n ):
32+ matrix [i ][j ], matrix [j ][i ] = matrix [j ][i ], matrix [i ][j ]
33+
34+ for i in range (n ):
35+ matrix [i ].reverse ()
36+
37+ '''
38+ # 💡 other rotate in-place examples
39+
40+ ## rotate 180 degree
41+
42+ ### solution A. reverse each column (vertical flip) & reverse each row (horizontal flip)
43+
44+ ```python
45+ def rotate180(matrix: List[List[int]]) -> None:
46+ n = len(matrix)
47+ matrix.reverse()
48+
49+ for i in range(n):
50+ matrix[i].reverse()
51+ ```
52+
53+ ### solution B. (after transpose, reverse each row (horizontal flip)) * 2.
54+
55+ 90 degree * 2 = 180 degree
56+
57+ ```python
58+ def rotate180(matrix: List[List[int]]) -> None:
59+ rotate90(matrix)
60+ rotate90(matrix)
61+ ```
62+
63+ ## rotate -90 degree
64+
65+ after transpose, reverse each column (vertical flip)
66+
67+ ```python
68+ def rotate90CCW(matrix):
69+ n = len(matrix)
70+
71+ for i in range(n):
72+ for j in range(i, n):
73+ matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
74+
75+ matrix.reverse()
76+ ```
77+ '''
You can’t perform that action at this time.
0 commit comments