rotate image medium

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.

insert image description here

Example 1:

Input: matrix = [[1,2,3],[4,5,6],[7,8,9]]
Output: [[7,4,1],[8,5,2],[9 ,6,3]]

insert image description here

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--;
		}	
	}
}//以中间为轴左右对称
    }

Guess you like

Origin blog.csdn.net/BeiWoFW/article/details/124356577