MCPcopy Index your code
hub / github.com/neetcode-gh/leetcode / kSum

Function kSum

javascript/0018-4sum.js:11–45  ·  view source on GitHub ↗
(k, start, target)

Source from the content-addressed store, hash-verified

9 const quad = [];
10
11 const kSum = (k, start, target) => {
12 if (k > 2) {
13 for (let i = start; i < sortedNums.length; i++) {
14 if (i !== start && sortedNums[i] === sortedNums[i - 1]) {
15 continue;
16 }
17 quad.push(sortedNums[i]);
18 kSum(k - 1, i + 1, target - sortedNums[i]);
19 quad.pop();
20 }
21 } else {
22 let left = start;
23 let right = sortedNums.length - 1;
24
25 while (left < right) {
26 const sum = sortedNums[left] + sortedNums[right];
27 if (sum < target) {
28 left++;
29 } else if (sum > target) {
30 right--;
31 } else {
32 res.push(
33 quad.concat([sortedNums[left], sortedNums[right]]),
34 );
35 left++;
36 while (
37 left < right &&
38 sortedNums[left] === sortedNums[left - 1]
39 ) {
40 left++;
41 }
42 }
43 }
44 }
45 };
46 kSum(4, 0, target);
47 return res;
48};

Callers 1

fourSumFunction · 0.70

Calls 2

pushMethod · 0.45
popMethod · 0.45

Tested by

no test coverage detected