给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。
样例
给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]
挑战
能否在原地完成?
常规解法:
class Solution {
public:
void rotate(vector<vector<int> > &matrix) {
if(matrix.empty())
return ;
const int row=matrix[0].size() ;
const int cal=matrix.size();
int ret[row][cal];
for(int i=0;i<row;++i)
for(int j=0;j<cal;++j){
ret[i][cal-j-1]=matrix[j][i];
}
matrix.clear();
for(int i=0;i<row;++i){
vector<int> base;
for(int j=0;j<cal;++j){
base.push_back(ret[i][j]);
}
matrix.push_back(base);
}
}
};