正面實作轉90度極度難寫XD
改用轉置+反轉row
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | class Solution { public: void rotate(vector<vector<int>>& matrix) { int N = matrix.size(); // step 1 : transpose for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { int tmp = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = tmp; } } // step 2 : reverse each row for (int i = 0; i < N; i++) { for (int j = 0; j < N / 2; j++) { int tmp = matrix[i][j]; matrix[i][j] = matrix[i][N - j - 1]; matrix[i][N - j - 1] = tmp; } } } }; |