1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| function target_sum(a, k, x) {
if (k == a.length) return [];
if (a[k] == x) {
return [ [a[k]] ];
} else {
var s = target_sum(a, k + 1, x); // not using a[k]
var t = target_sum(a, k + 1, x - a[k]); // using a[k]
for (var i = 0; i < t.length; ++i) {
t[i].unshift(a[k]); // a[k] is part of the solution
s.push(t[i]); // merge t[] into s[]
}
return s;
}
}
var s = target_sum([1, 4, 5, 2, 7, 8, -3, -5, -6, 9, 3, -7, -1, 5, 6], 0, 0);
for (var i = 0; i < s.length; ++i)
console.log(s[i].join(",")); |
Partager