我已经完成了一个低效但可行的算法,用于找到数组(arr1)中哪一对数字相加等于给定的和。我遇到了以下两个问题:
(1) 它会返回“每一对”数字(例如:当和为12时,既返回1+11,也返回11+1);
(2) 我不想让它将一个数字与自身相加(例如:在
(1) 它会返回“每一对”数字(例如:当和为12时,既返回1+11,也返回11+1);
(2) 我不想让它将一个数字与自身相加(例如:在
findArrSum([1, 3, 4, 8, 9, 11, 6, ], 12)
中,我不希望它返回(6+6)。我可以通过if语句忽略6,但这样会同时忽略解决方案(例如,在findArrSum([1, 3, 4, 8, 9, 11, 6, 6], 12)
中的6+6)。function findArrSum(arr1, sum) {
var i = 0;
for (i in arr1) {
arr1.map(function(num) {
var answerSum = (num + arr1[i]);
if (answerSum == sum && num != arr1[i]) {
console.log(num +"+" +arr1[i] +"=" +sum);
}
});
}
}
console.log('Enter an array and a sum that you want a pair to add to: ')
num != arr1[i]
变成(num != arr1[i] && i!=b)
- dandavis