给定一个N×N的二维矩阵表示图像,90度顺时针旋转图像。
样例
给出一个矩形[[1,2],[3,4]],90度顺时针旋转后,返回[[3,1],[4,2]]
挑战
能否在原地完成?
#ifndef C161_H
#define C161_H
#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
/*
* @param matrix: a lists of integers
* @return:
*/
void rotate(vector<vector<int>>& matrix) {
// write your code here
int len = matrix.size();
if (len <= 0)
return;
int i = 0, j = len - 1;
while (i < j)
{
vector<int> v;
v = matrix[i];
matrix[i] = matrix[j];
matrix[j] = v;
++i;
--j;
}
for (int i = 0; i < len; ++i)
{
for (int j = 0; j < len; ++j)
{
if (i > j)
{
matrix[i][j] =matrix[i][j]^ matrix[j][i];
matrix[j][i] = matrix[i][j] ^ matrix[j][i];
matrix[i][j] = matrix[i][j] ^ matrix[j][i];
}
}
}
}
};
#endif