??今天在lintCode做了一道題,自己想了一下做法,做出來,但是覺得有必要記錄下來。
題意:
給定一個N×N的二維矩陣表示圖像,90度順時針旋轉(zhuǎn)圖像。
樣例:
給出一個矩形[[1,2],[3,4]],90度順時針旋轉(zhuǎn)后,返回[[3,1],[4,2]]
挑戰(zhàn):
能否在原地完成?
1.解題思路
??這個題乍一看懵逼,其實非常的簡單。下面我用圖來表示解題思路:

2.代碼
public void rotate(int[][] matrix) {
if (matrix.length == 0 || matrix[0].length == 0) {
return;
}
//順時針旋轉(zhuǎn)270度
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < i; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[j][i];
matrix[j][i] = temp;
}
}
//逆時針旋轉(zhuǎn)180度
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[0].length / 2; j++) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][matrix[0].length - 1 - j];
matrix[i][matrix[0].length - 1 - j] = temp;
}
}
}