[leetcode] Rotate Image

Rotate Image

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之后:
        matrix[i][j] = matrix[n-1-j][i];
        matrix[n-1-j][i] = matrix[n-1-i][n-1-j];
        matrix[n-1-i][n-1-j] = matrix[j][n-1-i];
        matrix[j][n-1-i] =matrix[i][j];
 
class Solution
{
public:
  void rotate(vector<vector<int> > &matrix)
  {
    if(matrix.empty()) return;

    int n = matrix.size();

for(int i=0; i<=(n-1)/2; i++) { for(int j = i; j<n-i-1; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[n-1-j][i]; matrix[n-1-j][i] = matrix[n-1-i][n-1-j]; matrix[n-1-i][n-1-j] = matrix[j][n-1-i]; matrix[j][n-1-i] = temp; } } } };

 

posted @ 2015-05-11 13:30  imKirin  阅读(110)  评论(0编辑  收藏  举报