48. Rotate Image

Leetcode link

题目简介

/**
 * @param {number[][]} matrix
 * @return {void} Do not return anything, modify matrix in-place instead.
 */

题目给我们一个 n*n 的矩阵,要求我们不借助别的空间将当前矩阵向右旋转 90 度

解题思路

我们需要把向右旋转 90 度拆分为两个操作:

  1. 把矩阵从左上到右下划一条线,把所有矩阵元素沿着这条线交换(术语叫转置矩阵
  2. 把矩阵每一行的元素逆转

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()
    }
};

results matching ""

    No results matching ""