This is a math trick.  

 1 class Solution {
 2 public:
 3     void rotate(vector<vector<int> > &matrix) {
 4         auto swap = [](int &a, int &b){int t = a; a = b; b = t;};
 5         if (matrix.size() == 0) return;
 6         int n = matrix.size();
 7         for (int i = 0; i < n; i++) {
 8             for (int j = i; j < n; j++) {
 9                 swap(matrix[i][j], matrix[j][i]);
10             }
11         }
12         for (int i = 0; i < n; i++) {
13             for (int j = 0; j < n/2; j++) {
14                 swap(matrix[i][j], matrix[i][n-j-1]);
15             }
16         }
17     }
18 };

 

posted on 2015-03-23 10:48  keepshuatishuati  阅读(125)  评论(0编辑  收藏  举报