leetcode-Rotate Image

来源:互联网 发布:稳定网络的软件 编辑:程序博客网 时间:2024/05/02 02:01
Rotate ImageMar 18 '124182 / 9471

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?

 

这题我第一次做时候,实现的非常复杂。人肉实现rotate。code很麻烦。

后来偶然间看到同学的做法,很妙:

rotate(M) = traspose(M)后,swap列

例如:

123

456 

789

先transpose:

147

258

369

然后对调第1,3列

741

852

963

OK!

class Solution {public:    void rotate(vector<vector<int> > &matrix) {        int i,j,len;        len=matrix.size();        if(len==0) return;        for(i=0;i<len;i++){            for(j=i;j<len;j++){                swap(matrix[i][j],matrix[j][i]);            }        }        i=0,j=len-1;        while(i<j){            for(int k=0;k<len;k++)            swap(matrix[k][i],matrix[k][j]);            i++;            j--;        }    }};

0 0
原创粉丝点击