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 阅读 33 次 更新于 2025-09-11 06:11:37 我来答关注问题0
  •  翡希信息咨询 Javascript 数组 (六)

    数组是Javascript中非常强大且灵活的数据结构,通过掌握上述的数组定义、创建、存储、访问、多维数组、本质与类型、length属性、in运算符、截取、添加与删除元素以及其他方法,我们可以更加高效地处理数据。希望这些内容能帮助你更好地理解和使用Javascript数组。

  •  文暄生活科普 如何在JavaScript中使用数组方法:Mutator方法

    push()方法用于向数组末尾添加一个或多个新元素。通过将新元素作为参数传递给此方法,我们可以实现添加操作。同时,数组也可以添加多个新值,例如fish.push("swordfish", "dragonfish")将向索引4和5添加新项。unshift()方法则在数组的开头添加一个或多个新元素。与shift()类似,可以一次向数组添加多个逗号...

  •  誉祥祥知识 JavaScript数组相关方法

    首先使用映射函数映射每个元素,然后将结果压缩成一个新数组,原数组不会被修改。会改变原来数组的方法:array.pop()移除数组的最后一个元素,并返回该元素的值,原数组被修改。array.push(item1, item2, ..., itemX)将一个或多个元素添加到数组的末尾,并返回新的长度,原数组被修改。array.shift...

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

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

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

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

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

CSS相关话题

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