在 javascript 中展平二维数组

问题描述 投票:0回答:1

假设我有一个二维数组,我想要并且我想要搜索值 int 3 的出现 我尝试展平数组,假设时间复杂度为 O(parentArraySize * subArraysSize) 有什么办法可以让它变得更好我不关心空间,有没有我可以使用的算法或数据结构 注意:子数组大小不是恒定的,它可以大于或小于 3

    let twoDArray = [[1, 2, 3], [3, 5, 7], [3, 9, 10]];
    let flattenArray = [];
    for(let subAray of twoDArray){
        for(let num of subAray){
            flattenArray.push(num)
        }
    }

我也尝试过对目标值实施二分搜索,但它只对查找单个值而不是所有可能的目标有效

arrays algorithm data-structures 2d
1个回答
0
投票

您可以连接每个嵌套数组,而不是单独添加每个值,这应该会使速度稍微快一些。

let twoDArray = [[1, 2, 3], [3, 5, 7], [3, 9, 10]];
let flattenedArray = [];
for(let subAray of twoDArray){
    flattenedArray = flattenedArray.concat(subAray)
}
© www.soinside.com 2019 - 2024. All rights reserved.