首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript检测另一个数组中数组的所有值

Javascript检测另一个数组中数组的所有值
EN

Stack Overflow用户
提问于 2021-03-29 00:32:01
回答 4查看 52关注 0票数 1

假设我有一个数组const series = [0,4,8]和另一个数组const positions = [0,3,4,7,8]

如何检测positions中是否包含series的所有值

我最初的反应是创建一个for loop,它将遍历positions中的所有值,并检查它们是否等于series的值,但这似乎非常低效。

EN

Stack Overflow用户

发布于 2021-03-29 00:40:20

最坏的情况是复杂度是n * log(n)。用于循环series array中所有元素的n和用于二进制搜索的log(n)

代码语言:javascript
运行
复制
const positions = [0, 3, 4, 7, 8];
const series = [0, 4, 8];

function bsearch(Arr, value) {
  var low = 0,
    high = Arr.length - 1,
    mid;
  while (low <= high) {
    mid = Math.floor((low + high) / 2);
    if (Arr[mid] == value) return mid;
    else if (Arr[mid] < value) low = mid + 1;
    else high = mid - 1;
  }
  return -1;
}
let i;
for (i = 0; i < series.length; ++i) {
  const pos = bsearch(positions, series[i]);
  if (pos === -1) break;
}

if (i === series.length) {
  console.log("All element present");
} else {
  console.log("All elmenet not present");
}

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66843664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档