(idx, currSum, currSumArray, nums, result, target)
| 18 | }; |
| 19 | |
| 20 | function backtrack(idx, currSum, currSumArray, nums, result, target) { |
| 21 | if (idx > nums.length || currSum > target) { |
| 22 | return; |
| 23 | } |
| 24 | if (currSum === target) { |
| 25 | result.push(currSumArray.slice()); |
| 26 | return; |
| 27 | } |
| 28 | currSumArray.push(nums[idx]); |
| 29 | backtrack(idx + 1, currSum + nums[idx], currSumArray, nums, result, target); |
| 30 | currSumArray.pop(); |
| 31 | backtrack(idx + 1, currSum, currSumArray, nums, result, target); |
| 32 | } |
| 33 | |
| 34 | const nums = [1, 2, 3, 4, 5, 6, 7, 8]; |
| 35 | console.table(getSums(nums, 8)); |