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