0
点赞
收藏
分享

微信扫一扫

leetcode 48. 旋转图像

问题描述

给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。

示例

输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]]

解法一

解题思路:

我们可以通过多次翻转矩阵来实现旋转的效果。首先,我们沿着主对角线翻转矩阵,然后再沿着垂直方向翻转。这样,矩阵就被顺时针旋转了 90 度。

/*
 * @lc app=leetcode.cn id=48 lang=javascript
 *
 * [48] 旋转图像
 */

// @lc code=start
function rotate(matrix) {
  const n = matrix.length;
  // 沿着主对角线翻转
  for (let i = 0; i < n; i++) {
    for (let j = i; j < n; j++) {
      [matrix[i][j], matrix[j][i]] = [matrix[j][i], matrix[i][j]];
    }
  }
  // 沿着垂直方向翻转
  for (let i = 0; i < n; i++) {
    for (let j = 0; j < Math.floor(n / 2); j++) {
      [matrix[i][j], matrix[i][n - 1 - j]] = [matrix[i][n - 1 - j], matrix[i][j]];
    }
  }
}
// @lc code=end
举报

相关推荐

0 条评论