順時(shí)針旋轉(zhuǎn)二維數(shù)組,直接修改輸入的二維矩陣涨薪,不要使用額外的空間。
原地旋轉(zhuǎn)炫乓,尋找遞推關(guān)系刚夺,m[col][n - row - 1] = m[row][col],逐級(jí)遞推末捣,找到關(guān)系
- 時(shí)間復(fù)雜度O(n^2)侠姑,空間復(fù)雜度O(1)
- Runtime: 76 ms, faster than 81.50%
- Memory Usage: 38.7 MB, less than 64.42%
/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function(matrix) {
var n = matrix.length
for(var i = 0; i < n/2; i++){//多少層旋轉(zhuǎn)
for(var j = i; j < n - i - 1; j++){//每層旋轉(zhuǎn)的起始與結(jié)束索引
var temp = matrix[i][j]
matrix[i][j] = matrix[n - j - 1][i]
matrix[n - j - 1][i] = matrix[n - i - 1][n - j - 1]
matrix[n - i - 1][n - j - 1] = matrix[j][n - i - 1]
matrix[j][n - i - 1] = temp
}
}
return matrix
};