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?
先转置
class Solution { public: void rotate(vector<vector<int> > &matrix) { int n = matrix.size(); if(n==0) return; int m = matrix[0].size(); for(int i=0; i<n; i++) { for(int j=i+1; j<m; j++) { int temp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = temp; } } for(int i=0; i<n; i++) { int low = 0; int high = n-1; while(low<high) { int temp = matrix[i][low]; matrix[i][low] = matrix[i][high]; matrix[i][high] = temp; low++; high--; } } } };
原文地址:http://blog.csdn.net/shaya118/article/details/42639189