观察可以发现,原矩阵(x,y)位置的数字旋转完成了以后会在(y)(n-1-x)位置。
c++
class Solution {
public:
vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {
vector<vector<int> > ans(n);
for(int i = 0 ; i < n ; i++)
{
ans[i].resize(n);
}
for(int x = 0 ; x < n ;x++)
{
for(int y = 0 ; y < n ; y++)
{
ans[y][n-1-x] = mat[x][y];
}
}
return ans;
}
};
java
import java.util.*;
public class Solution {
public int[][] rotateMatrix(int[][] mat, int n) {
int ans[][] = new int[n][n];
for(int x = 0 ; x < n ;x++)
{
for(int y = 0 ; y < n ; y++)
{
ans[y][n-1-x] = mat[x][y];
}
}
return ans;
}
}
python
class Solution:
def rotateMatrix(self, mat, n):
ans = [[0]*n for e in range(n)]
for x in range(n):
for y in range(n):
ans[y][n-1-x] = mat[x][y]
return ans

京公网安备 11010502036488号