您的位置:首页 > 其它

[LeetCode]048-Rotate Image

2016-05-07 16:06 411 查看
题目:

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;
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode