返回介绍

旋转图像

发布于 2024-09-16 00:06:32 字数 908 浏览 0 评论 0 收藏 0

题目内容

解题思路

两次翻转。

matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]]

先根据水平轴翻转得到:

[[15,14,12,16],[13,3,6,7],[2,4,8,10],[5,1,9,11]]

再根据主对角线翻转得到:

[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]

代码实现

/**
 Do not return anything, modify matrix in-place instead.
 */
const rotate = (matrix: number[][]): void => {
  const n: number = matrix.length;
  for (let i = 0; i < Math.floor(n / 2); ++i) {
    for (let j = 0; j < n; ++j) {
      [matrix[i][j], matrix[n - i - 1][j]] = [
        matrix[n - i - 1][j],
        matrix[i][j],
      ];
    }
  }

  for (let i = 0; i < n; ++i) {
    for (let j = 0; j < i; ++j) {
      [matrix[i][j], matrix[j][i]] = [matrix[j][i], matrix[i][j]];
    }
  }
};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文