JavaScript数组操作之旋转二维数组

一种实现方法是首先创建一个辅助数组,然后根据旋转规则将元素放置到新位置。这种方法的时间复杂度为 O(n^2),空间复杂度也为 O(n^2)。另一种方法是先沿对角线进行镜像对称,然后反转每一行。这种方法不需要额外的空间。具体实现如下:javascript var rotate = function (matrix) { let n = matrix...
JavaScript数组操作之旋转二维数组
给定一个 n x n 的二维矩阵 matrix 表示一个图像。请将图像顺时针旋转 90 度。你需要直接修改输入的二维矩阵,而不能使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输出:[[7,4,1],[8,5,2],[9,6,3]]。示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] 输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]。

一种实现方法是首先创建一个辅助数组,然后根据旋转规则将元素放置到新位置。这种方法的时间复杂度为 O(n^2),空间复杂度也为 O(n^2)。另一种方法是先沿对角线进行镜像对称,然后反转每一行。这种方法不需要额外的空间。具体实现如下:

javascript
var rotate = function (matrix) {
let 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]];
}
}
// 然后反转二维矩阵的每一行
const reverseRow = (arr) => {
let i = 0, j = arr.length - 1;
while (i < j) {
[arr[i], arr[j]] = [arr[j], arr[i]];
i++;
j--;
}
};
for (let row of matrix) {
reverseRow(row);
}
return matrix;
}

此方法的时间复杂度同样是 O(n^2),但不需要额外的空间。

总结来说,旋转二维数组可以通过镜像对称和反转每一行的方式来实现,这种方法既高效又节省空间。希望这篇文章能够帮助你更好地理解如何在 JavaScript 中进行二维数组的旋转操作。2024-10-27
mengvlog 阅读 13 次 更新于 2025-07-20 14:35:52 我来答关注问题0
  • 示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10],[13,3,6,7],[15,14,12,16]] 输出:[[15,13,2,5],[14,3,4,1],[12,6,8,9],[16,7,10,11]]。一种实现方法是首先创建一个辅助数组,然后根据旋转规则将元素放置到新位置。这种方法的时间复杂度为 O(n^2),空间复杂度也...

  •  翡希信息咨询 JavaScript 数组的一些方法&&数组拷贝

    JavaScript数组的一些常用方法包括添加与删除、遍历与转换、搜索与查找等,数组拷贝有浅拷贝和深拷贝的不同实现方式。数组常用方法: 添加与删除: Array.unshift:在数组开头添加元素。 Array.push:在数组结尾添加元素。 Array.shift:删除并返回数组开头元素。 Array.pop:删除并返回数组结尾元...

  •  文暄生活科普 JavaScript 数组的一些方法&&数组拷贝

    JavaScript数组的方法与拷贝JavaScript数组提供了丰富的操作方法,包括添加、删除、遍历、转换和搜索等,同时还有深浅拷贝的不同实现方式。让我们一一探索:添加与删除Array.unshift:在数组开头添加元素,改变原数组,遵循FIFO规则。Array.push:在数组结尾添加元素,改变原数组,类似于队列操作。Array.shift:删除...

  •  翡希信息咨询 javascript Array (数组)方法

    JavaScript中的数组方法丰富多样,它们在数据操作和处理中起着关键作用。以下是JavaScript数组方法的简要介绍:join:功能:将数组转换为字符串。参数:不填参数时默认用逗号分隔,可自定义分隔符。push 和 unshift:功能:用于在数组尾部或头部追加元素。区别:push用于尾部添加,unshift用于头部添加。pop 和 s...

  •  腾云新分享 javascript中的数组常用方法解析

    作用:返回一个新数组对象,包含从原数组中指定位置开始到结束位置的元素。解释:slice 方法可以接收两个参数,开始和结束位置。如果没有指定参数,它将返回整个数组的一个副本。它是JavaScript中常用的数组操作方法之一。七、map 方法 作用:通过指定函数处理数组的每个元素,并返回处理后的新数组。解释:...

檬味博客在线解答立即免费咨询

CSS相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部