48. Rotate Image
题目简介
/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
题目给我们一个 n*n 的矩阵,要求我们不借助别的空间将当前矩阵向右旋转 90 度
解题思路
我们需要把向右旋转 90 度拆分为两个操作:
- 把矩阵从左上到右下划一条线,把所有矩阵元素沿着这条线交换(术语叫转置矩阵)
- 把矩阵每一行的元素逆转
Javascript
/**
* @param {number[][]} matrix
* @return {void} Do not return anything, modify matrix in-place instead.
*/
var rotate = function(matrix) {
const width = matrix[0].length
const height = matrix.length
// Step1: transpose the matrix
for(let i=0;i<height;i++) {
for(let j=i+1;j<width;j++){
;[matrix[i][j], matrix[j][i]] = [matrix[j][i], matrix[i][j]]
}
}
// Step2: reverse each row
for(let i=0;i<height;i++) {
matrix[i].reverse()
}
};