File tree Expand file tree Collapse file tree 4 files changed +87
-18
lines changed
solution/0000-0099/0048.Rotate Image Expand file tree Collapse file tree 4 files changed +87
-18
lines changed Original file line number Diff line number Diff line change 6060<!-- 这里可写当前语言的特殊实现逻辑 -->
6161
6262``` python
63-
63+ class Solution :
64+ def rotate (self , matrix : List[List[int ]]) -> None :
65+ """
66+ Do not return anything, modify matrix in-place instead.
67+ """
68+ s, n = 0 , len (matrix)
69+ while s < (n >> 1 ):
70+ e = n - s - 1
71+ for i in range (s, e):
72+ t = matrix[i][e]
73+ matrix[i][e] = matrix[s][i]
74+ matrix[s][i] = matrix[n - i - 1 ][s]
75+ matrix[n - i - 1 ][s] = matrix[e][n - i - 1 ]
76+ matrix[e][n - i - 1 ] = t
77+ s += 1
6478```
6579
6680### ** Java**
6781
6882<!-- 这里可写当前语言的特殊实现逻辑 -->
6983
7084``` java
71-
85+ class Solution {
86+ public void rotate (int [][] matrix ) {
87+ int s = 0 , n = matrix. length;
88+ while (s < (n >> 1 )) {
89+ int e = n - s - 1 ;
90+ for (int i = s; i < e; ++ i) {
91+ int t = matrix[i][e];
92+ matrix[i][e] = matrix[s][i];
93+ matrix[s][i] = matrix[n - i - 1 ][s];
94+ matrix[n - i - 1 ][s] = matrix[e][n - i - 1 ];
95+ matrix[e][n - i - 1 ] = t;
96+ }
97+ ++ s;
98+ }
99+ }
100+ }
72101```
73102
74103### ** ...**
Original file line number Diff line number Diff line change @@ -87,13 +87,42 @@ rotate the input matrix <strong>in-place</strong> such that it becomes:
8787### ** Python3**
8888
8989``` python
90-
90+ class Solution :
91+ def rotate (self , matrix : List[List[int ]]) -> None :
92+ """
93+ Do not return anything, modify matrix in-place instead.
94+ """
95+ s, n = 0 , len (matrix)
96+ while s < (n >> 1 ):
97+ e = n - s - 1
98+ for i in range (s, e):
99+ t = matrix[i][e]
100+ matrix[i][e] = matrix[s][i]
101+ matrix[s][i] = matrix[n - i - 1 ][s]
102+ matrix[n - i - 1 ][s] = matrix[e][n - i - 1 ]
103+ matrix[e][n - i - 1 ] = t
104+ s += 1
91105```
92106
93107### ** Java**
94108
95109``` java
96-
110+ class Solution {
111+ public void rotate (int [][] matrix ) {
112+ int s = 0 , n = matrix. length;
113+ while (s < (n >> 1 )) {
114+ int e = n - s - 1 ;
115+ for (int i = s; i < e; ++ i) {
116+ int t = matrix[i][e];
117+ matrix[i][e] = matrix[s][i];
118+ matrix[s][i] = matrix[n - i - 1 ][s];
119+ matrix[n - i - 1 ][s] = matrix[e][n - i - 1 ];
120+ matrix[e][n - i - 1 ] = t;
121+ }
122+ ++ s;
123+ }
124+ }
125+ }
97126```
98127
99128### ** ...**
Original file line number Diff line number Diff line change 11class Solution {
22 public void rotate (int [][] matrix ) {
3- if (matrix ==null ) return ;
4- int n =matrix .length ;
5- for (int i =0 ;i <n ;i ++){
6- for (int j =i ;j <n ;j ++){
7- int temp =matrix [i ][j ];
8- matrix [i ][j ]=matrix [j ][i ];
9- matrix [j ][i ]=temp ;
10- }
11- }
12- for (int i =0 ;i <n ;i ++){
13- for (int j =0 ;j <n /2 ;j ++){
14- int temp = matrix [i ][j ];
15- matrix [i ][j ] = matrix [i ][matrix .length -1 -j ];
16- matrix [i ][matrix .length -1 -j ] = temp ;
3+ int s = 0 , n = matrix .length ;
4+ while (s < (n >> 1 )) {
5+ int e = n - s - 1 ;
6+ for (int i = s ; i < e ; ++i ) {
7+ int t = matrix [i ][e ];
8+ matrix [i ][e ] = matrix [s ][i ];
9+ matrix [s ][i ] = matrix [n - i - 1 ][s ];
10+ matrix [n - i - 1 ][s ] = matrix [e ][n - i - 1 ];
11+ matrix [e ][n - i - 1 ] = t ;
1712 }
13+ ++s ;
1814 }
1915 }
2016}
Original file line number Diff line number Diff line change 1+ class Solution :
2+ def rotate (self , matrix : List [List [int ]]) -> None :
3+ """
4+ Do not return anything, modify matrix in-place instead.
5+ """
6+ s , n = 0 , len (matrix )
7+ while s < (n >> 1 ):
8+ e = n - s - 1
9+ for i in range (s , e ):
10+ t = matrix [i ][e ]
11+ matrix [i ][e ] = matrix [s ][i ]
12+ matrix [s ][i ] = matrix [n - i - 1 ][s ]
13+ matrix [n - i - 1 ][s ] = matrix [e ][n - i - 1 ]
14+ matrix [e ][n - i - 1 ] = t
15+ s += 1
You can’t perform that action at this time.
0 commit comments