Leetcode:48. Rotate Image
Description
You are given an n x n 2D matrix representing an image.
Rotate the image by 90 degrees (clockwise).
Follow up:
Could you do this in-place?
思路
- 先上下对称交换,然后沿主对角线对称交换
代码
class Solution {
public:
void rotate(vector<vector<int>>& matrix) {
int n = matrix.size();
if(n <= 1) return;
for(int i = 0; i < n / 2; ++i){
for(int j = 0; j < n; ++j)
swap(matrix[i][j], matrix[n - 1 - i][j]);
}
for(int i = 0; i < n - 1; ++i){
for(int j = i + 1; j < n; ++j){
swap(matrix[j][i], matrix[i][j]);
}
}
}
};