题目描述:有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。
示例1
输入:[[1,2,3],[4,5,6],[7,8,9]],3
返回值:[[7,4,1],[8,5,2],[9,6,3]]
思路:要求顺时针旋转后的矩阵,设结果矩阵为RES,初始矩阵为mat,则根据图形旋转知识可知,mat顺时针旋转90度后为RES,那么RES逆时针旋转后则为mat,由此出发可求得 ,k看下图。
具体代码如下:
class Solution {
public:
vector<vector<int> > rotateMatrix(vector<vector<int> > mat, int n) {//围绕中心旋转
// write code here
vector<vector<int> > RES;
for(int i=0;i<n;i++)
{
vector<int> res;
for(int j=0;j<n;j++)
{
res.push_back(0);
}
RES.push_back(res);
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
RES[i][j] = mat[n-1-j][i];
return RES;
}
};


京公网安备 11010502036488号