First flip along the diagonal, then reverse each row.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#include<vector> #include<algorithm> using std::vector;
classSolution { public: voidrotate(vector<vector<int> > &matrix) { // First flip along the diagonal int i, j, n = matrix.size(); for (i = 0; i < n; i++) for(j = i + 1; j< n; j++) std::swap(matrix[i][j], matrix[j][i]);
// Then reverse each row for (i = 0; i < n; i++) std::reverse(matrix[i].begin(), matrix[i].end()); } };
leetcode hot 100 rewrite
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#include<vector> #include<algorithm> using std::vector;
classSolution { public: voidrotate(vector<vector<int> > &matrix) { int i, j, n = matrix.size(); for (i = 0; i < n; i++) { for (j = i + 1; j < n; j++) { std::swap(matrix[i][j], matrix[j][i]); } } for (i = 0; i < n; i++) std::reverse(matrix[i].begin(), matrix[i].end()); } };