假设我有一个二维数组,我想要并且我想要搜索值 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)
}
}
我也尝试过对目标值实施二分搜索,但它只对查找单个值而不是所有可能的目标有效
您可以连接每个嵌套数组,而不是单独添加每个值,这应该会使速度稍微快一些。
let twoDArray = [[1, 2, 3], [3, 5, 7], [3, 9, 10]];
let flattenedArray = [];
for(let subAray of twoDArray){
flattenedArray = flattenedArray.concat(subAray)
}