48. Rotate Image

来源:互联网 发布:c语言输出完全数 编辑:程序博客网 时间:2024/06/04 23:18

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?

Subscribe to see which companies asked this question

注意外圈的旋转次数为len-1

class Solution {public:    void dorotate(vector<vector<int>>& matrix,int start,int len)    {                vector<int> temp;        for(int i=0;i<len-1;++i)        {            int temp=matrix[start+i][start];            matrix[start+i][start]=matrix[start+len-1][start+i];            matrix[start+len-1][start+i]=matrix[start+len-1-i][start+len-1];            matrix[start+len-1-i][start+len-1]=matrix[start][start+len-1-i];            matrix[start][start+len-1-i]=temp;        }    }    void rotate(vector<vector<int>>& matrix) {                int len=matrix.size();        int p=0;        for(int i=0;i<len;i+=2)        {            dorotate(matrix,p++,len-i);        }        return ;    }};

0 0
原创粉丝点击