给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。
样例
样例1:
输入:[[1,2],[3,4]]
输出:[[3,1],[4,2]]
样例 2:
输入:[[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]
挑战
能否在原地完成?
思路:可以通过前后换行,然后对角线互换来得到
class Solution {
public:
/**
* @param matrix: a lists of integers
* @return: nothing
*/
void rotate(vector<vector<int>> &matrix) {
// write your code here
if(matrix.size()<=0) return;
int size=matrix.size();
for (int i = 0; i < size/2; i++) {
swap(matrix[i],matrix[size-i-1]);
}
for (int i = 0; i < size; i++) {
/* code */
for(int j = 0; j < i; j++)
{
swap(matrix[i][j],matrix[j][i]);
}
}
}
};