[LeetCode]048-Rotate Image

来源:互联网 发布:阿里云过户域名流程 编辑:程序博客网 时间:2024/04/30 14:48

题目:
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?

Solution:
其实就是矩阵的旋转,找到规律即可,比较简单,代码如下:

class Solution {public:    void rotate(vector<vector<int>>& matrix)     {        int M = matrix.size();        if(M == 0)            return;        int N = matrix[0].size();        int layer = 0;        while(layer < M / 2)        {            int rowLen = N- 2 * layer; //每一层的长度            int i ,j;            i = 0;            while(i < rowLen - 1)            {                int t = matrix[layer][layer+i];                matrix[layer][layer+i] = matrix[M-1-layer-i][layer];                matrix[M-1-layer-i][layer] = matrix[M-1-layer][N-1 - layer-i];                matrix[M-1-layer][N-1 - layer-i] = matrix[layer + i][N-1-layer];                matrix[layer + i][N-1-layer] = t;                i++;            }            layer++;        }    }    void print(vector<vector<int>> matrix)    {            for(int i =0;i < matrix.size();i++)            {                for(int j =0;j < matrix[i].size();j++)                {                    cout<<matrix[i][j]<<"\t";                }                cout<<endl;            }    }};
0 0
原创粉丝点击