48旋转图像
代码:
/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function(matrix) {
let Size = matrix.length - 1
let Radius = Size
const turn = (x, boundary) => {
// boundary,x -> x, Radius -> Radius, Size-x -> Size-x, boundary
let temp = matrix[boundary][x]
matrix[boundary][x] = matrix[Size-x][boundary]
matrix[Size-x][boundary] = matrix[Radius][Size-x]
matrix[Radius][Size-x] = matrix[x][Radius]
matrix[x][Radius] = temp
}
if (Size == 0) return
if (Size <= 1) {
turn(0, 0)
return
}
while (Radius > (Size%2 != 0 || Size==2 ? 1 : 2)) {
for (let x = Size-Radius; x<Radius; x++) {
turn(x, Size-Radius)
}
Radius--
}
};