Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e5040ea

Browse files
authored
Create 15-3Sum.js
1 parent 22cee91 commit e5040ea

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

javascript/15-3Sum.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number[][]}
4+
*/
5+
var threeSum = function(nums) {
6+
let res = [];
7+
let left = 0;
8+
let right = nums.length - 1;
9+
nums.sort((a,b) => { return a - b })
10+
11+
for (let i = 0; i < nums.length - 1; i++) {
12+
if (nums[i] > 0) return res;
13+
if (nums[i] === nums[i - 1]) continue;
14+
15+
left = i + 1;
16+
right = nums.length - 1;
17+
let temp = 0;
18+
19+
while (left < right) {
20+
temp = nums[left] + nums[right] + nums[i];
21+
if (temp === 0) {
22+
res.push([nums[i], nums[left], nums[right]]);
23+
left++;
24+
right--;
25+
26+
while(nums[left] == nums[left - 1]) { left++ };
27+
28+
while (nums[right] == nums[right - 1]) { right-- };
29+
30+
} else if (temp > 0) { right-- }
31+
else if (temp < 0) { left++ }
32+
}
33+
}
34+
return res;
35+
};

0 commit comments

Comments
 (0)