Algorithm twenty days
The twelfth day
Rotating an Image
Given an n × n two-dimensional matrix matrix representing an image. Please rotate the image 90 degrees clockwise.
You have to rotate the image in place, which means you need to directly modify the input 2D matrix. Please don't use another matrix to rotate the image.
Example 1:
Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [[7,4,1],[8,5,2],[9 ,6,3]]
Example 2:
Input: matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]
Output: [[15 ,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]hint:
n == matrix.length == matrix[i].length 1 <= n <= 20
-1000 <= matrix[i][j] <= 1000
Author: LeetCode
Link: https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnhhkv/
Source: LeetCode
void rotate(vector<vector<int>>& matrix) {
{
int leng=matrix.size();
for(int i=0;i<leng;i++)
for(int j=0;j<=i;j++)
{
int temp=matrix[i][j];
matrix[i][j]=matrix[j][i];
matrix[j][i]=temp;
}
//先求其逆矩阵
for(int i=0;i<leng;i++)
{
int left=0,right=leng-1;
while(left<right)
{
int temp=matrix[i][left];
matrix[i][left]=matrix[i][right];
matrix[i][right]=temp;
left++;
right--;
}
}
}//以中间为轴左右对称
}