@@ -91,6 +91,16 @@ class Solution:
91
91
return False
92
92
```
93
93
94
+ ``` python
95
+ class Solution :
96
+ def findRotation (self , mat : List[List[int ]], target : List[List[int ]]) -> bool :
97
+ for _ in range (4 ):
98
+ mat = [list (col) for col in zip (* mat[::- 1 ])]
99
+ if mat == target:
100
+ return True
101
+ return False
102
+ ```
103
+
94
104
### ** Java**
95
105
96
106
<!-- 这里可写当前语言的特殊实现逻辑 -->
@@ -135,6 +145,95 @@ class Solution {
135
145
}
136
146
```
137
147
148
+ ``` java
149
+ class Solution {
150
+ public boolean findRotation (int [][] mat , int [][] target ) {
151
+ int n = mat. length;
152
+ for (int k = 0 ; k < 4 ; ++ k) {
153
+ int [][] g = new int [n][n];
154
+ for (int i = 0 ; i < n; ++ i) {
155
+ for (int j = 0 ; j < n; ++ j) {
156
+ g[i][j] = mat[j][n - i - 1 ];
157
+ }
158
+ }
159
+ if (equals(g, target)) {
160
+ return true ;
161
+ }
162
+ mat = g;
163
+ }
164
+ return false ;
165
+ }
166
+
167
+ private boolean equals (int [][] a , int [][] b ) {
168
+ int n = a. length;
169
+ for (int i = 0 ; i < n; ++ i) {
170
+ for (int j = 0 ; j < n; ++ j) {
171
+ if (a[i][j] != b[i][j]) {
172
+ return false ;
173
+ }
174
+ }
175
+ }
176
+ return true ;
177
+ }
178
+ }
179
+ ```
180
+
181
+ ### ** C++**
182
+
183
+ ``` cpp
184
+ class Solution {
185
+ public:
186
+ bool findRotation(vector<vector<int >>& mat, vector<vector<int >>& target) {
187
+ int n = mat.size();
188
+ for (int k = 0; k < 4; ++k)
189
+ {
190
+ vector<vector<int >> g(n, vector<int >(n));
191
+ for (int i = 0; i < n; ++i)
192
+ for (int j = 0; j < n; ++j)
193
+ g[ i] [ j ] = mat[ j] [ n - i - 1 ] ;
194
+ if (g == target) return true;
195
+ mat = g;
196
+ }
197
+ return false;
198
+ }
199
+ };
200
+ ```
201
+
202
+ ### **Go**
203
+
204
+ ```go
205
+ func findRotation(mat [][]int, target [][]int) bool {
206
+ n := len(mat)
207
+ for k := 0; k < 4; k++ {
208
+ g := make([][]int, n)
209
+ for i := range g {
210
+ g[i] = make([]int, n)
211
+ }
212
+ for i := 0; i < n; i++ {
213
+ for j := 0; j < n; j++ {
214
+ g[i][j] = mat[j][n-i-1]
215
+ }
216
+ }
217
+ if equals(g, target) {
218
+ return true
219
+ }
220
+ mat = g
221
+ }
222
+ return false
223
+ }
224
+
225
+ func equals(a, b [][]int) bool {
226
+ for i, row := range a {
227
+ for j, v := range row {
228
+ if v != b[i][j] {
229
+ return false
230
+ }
231
+ }
232
+ }
233
+ return true
234
+ }
235
+ ```
236
+
138
237
### ** TypeScript**
139
238
140
239
``` ts
0 commit comments