在一定数量的数组中搜索数字

时间:2019-02-11 15:04:07

标签: javascript

我有一个数组,例如[10,5,6,3],还有一个变量b = 13,我想计算数组中每个元素的总和,如果总和等于b(13)返回true,我知道第一个和最后一个元素的总和=13。如何检查哪对元素的总和?

2 个答案:

答案 0 :(得分:0)

您可以使用此算法来检查数组中的两个值是否具有给定的总和。

function pairWithSum(array,sum){
  //sort the array
  const arr = array.sort((a,b) => a -b);
  while(arr.length > 1){
    if(arr[0] + arr[arr.length - 1] > sum) arr.pop()
    if(arr[0] + arr[arr.length - 1] < sum) arr.shift()
    if(arr[0] + arr[arr.length - 1] === sum) return true
  }
  return false;
}
console.log(pairWithSum([10,3,5,6,1],1))
console.log(pairWithSum([10,3,5,6,1],11))
console.log(pairWithSum([10,3,5,6,1],13));
console.log(pairWithSum([10,3,5,6,1],55))

答案 1 :(得分:0)

您可以为缺少的部分制作一个哈希表,如果找到则返回。

item_type