題目:
給定一個 n × n 的二維矩陣表示一個圖像。
將圖像順時針旋轉 90 度。
說明:
你必須在原地旋轉圖像,這意味着你需要直接修改輸入的二維矩陣。請不要使用另一個矩陣來旋轉圖像。
示例 1:
給定 matrix =
[
[1,2,3],
[4,5,6],
[7,8,9]
],
原地旋轉輸入矩陣,使其變爲:
[
[7,4,1],
[8,5,2],
[9,6,3]
]
思路:
把握旋轉的位置變化:
列數——>行數
總行數-1-行數——>列數
根據變化生成新的數組
最後生成的數組對應賦值到原來的數組
代碼:
/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function (matrix) {
var res = [], i, j, len = matrix.length;
for (i = 0; i < len; i++) {
res.push(new Array(len))
}
for (i = 0; i < len; i++) {
for (j = 0; j < len; j++) {
res[j][len - 1 - i] = matrix[i][j];
}
}
for (i = 0; i < len; i++) {
for (j = 0; j < len; j++) {
matrix[i][j] = res[i][j];
}
}
};
代碼地址:github地址