一、題目
給定一個 n × n 的二維矩陣表示一個圖像。
将圖像順時針旋轉 90 度。
說明:
你必須在原地旋轉圖像,這意味着你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉圖像。

二、思路
先轉置矩陣,再按列翻轉。
-
原矩陣:
1,2,3
4,5,6
7,8,9
-
轉置:
1,4,7
2,5,8
3,6,9
-
翻轉(按列):
7,4,1
8,5,2
9,6,3
三、代碼
class Solution {
public void rotate(int[][] matrix) {
int l = matrix.length;
// 轉置
for(int i = 0; i < l; i++){
for(int j = i; j < l; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
// 翻轉(按列對折)
for(int i = 0; i < l; i++){
for(int j = 0; j < l / 2; j++){
int temp = matrix[i][j];
matrix[i][j] = matrix[i][l - 1 - j];
matrix[i][l - 1 - j] = temp;
}
}
}
}