将矩阵顺时针旋转 90 度是计算机科学和技术面试中的常见问题。这个问题可能特别有趣,因为目标是就地执行旋转,而不为新矩阵使用额外的内存。在本指南中,我们将通过清晰的解释和示例代码探索如何实现这一目标。
给你一个代表图像的 n x n 2D 矩阵 A。您的任务是将图像顺时针旋转 90 度。如果您使用额外的阵列,您将仅获得部分积分。
1≤n≤1000
整数的二维矩阵 A
二维旋转矩阵
[ [1, 2], [3, 4] ]
[ [3, 1], [4, 2] ]
将矩阵旋转90度后:
这是一个执行旋转的 JavaScript 函数:
function rotateMatrix(A) { const n = A.length; // Step 1: Transpose the matrix for (let i = 0; i < n; i++) { for (let j = i; j < n; j++) { let temp = A[i][j]; A[i][j] = A[j][i]; A[j][i] = temp; } } // Step 2: Reverse each row for (let i = 0; i < n; i++) { A[i].reverse(); } return A; } // Example usage: let matrix = [ [1, 2], [3, 4] ]; console.log(rotateMatrix(matrix));
就地旋转矩阵是一项宝贵的技能,可以展示您对数组操作和就地算法的理解。通过转置矩阵,然后反转每一行,您可以在不使用额外空间的情况下实现所需的旋转。练习这种方法可以增强您在技术面试和编码挑战中解决问题的能力。
以上是轻松就位旋转矩阵:综合指南的详细内容。更多信息请关注PHP中文网其他相关文章!