您将如何测试一组给定数字的所有可能的添加组合,以便它们加起来给定的最终数字?
例:
我试图找出数组中的总和等于给定输入的最小元素。我尝试了很少的输入总和,但在第一种情况下只能找到一对,而我需要实现的不仅仅是一对。
var arr = [10, 0, -1, 20, 25, 30];
var sum = 45;
var newArr = [];
console.log('before sorting = ' + arr);
arr.sort(function(a, b) {
return a - b;
});
console.log('after sorting = ' + arr);
var l = 0;
var arrSize = arr.length - 1;
while (l < arrSize) {
if (arr[l] + arr[arrSize] === sum) {
var result = newArr.concat(arr[l], arr[arrSize]);
console.log(result);
break;
} else if (arr[l] + arr[arrSize] > sum) {
arrSize--;
} else { …Run Code Online (Sandbox Code Playgroud)