”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 轻松就位旋转矩阵:综合指南

轻松就位旋转矩阵:综合指南

发布于2024-10-31
浏览:518

Effortlessly Rotate a Matrix in Place: A Comprehensive Guide

将矩阵顺时针旋转90度是计算机科学和技术面试中的常见问题。这个问题可能特别有趣,因为目标是就地执行旋转,而不为新矩阵使用额外的内存。在本指南中,我们将通过清晰的解释和示例代码探索如何实现这一目标。


问题描述

给你一个代表图像的 n x n 2D 矩阵 A。您的任务是将图像顺时针旋转 90 度。如果您使用额外的阵列,您将仅获得部分积分。

问题约束

1≤n≤1000

输入格式

整数的二维矩阵 A

输出格式

二维旋转矩阵

输入示例

[
    [1, 2],
    [3, 4]
]

示例输出

[
    [3, 1],
    [4, 2]
]

示例说明

矩阵旋转90度后:

  • 1 转到位置 2
  • 2 转到位置 4
  • 4 转到位置 3
  • 3 转到位置 1

分步解决方案

第 1 步:转置矩阵

  • 转置矩阵意味着将其行转换为列,将列转换为行。这可以通过交换主对角线(左上角到右下角)的元素来完成。

第 2 步:反转每一行

  • 矩阵转置后,下一步就是反转每一行。这将有效地将矩阵顺时针旋转 90 度。

示例代码

这是一个执行旋转的 JavaScript 函数:

function rotateMatrix(A) {
    const n = A.length;

    // Step 1: Transpose the matrix
    for (let i = 0; i 





守则解释

转置矩阵:

  • 使用两个嵌套循环遍历矩阵。
  • 交换元素 A[i][j] 和 A[j][i] 以转置矩阵。

反转每一行:

  • 使用内置的reverse()方法反转转置矩阵中的每一行。

返回旋转矩阵:

  • 每一行转置并反转后,矩阵顺时针旋转90度。

结论

就地旋转矩阵是一项宝贵的技能,可以展示您对数组操作和就地算法的理解。通过转置矩阵,然后反转每一行,您可以在不使用额外空间的情况下实现所需的旋转。练习这种方法可以增强您在技术面试和编码挑战中解决问题的能力。

版本声明 本文转载于:https://dev.to/imkrunalkanojiya/effortlessly-rotate-a-matrix-in-place-a-comprehensive-guide-251j?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3