3Sum
Tags:
Medium
Skills:
Three pointer
June 24, 2025
04:32 AM
No headings found
Loading content...
Related Posts
Leetcode
No headings found
Related Posts
Leetcode
Approach
Solution
1function threeSum(nums: number[]): number[][] {
2 nums.sort((a, b) => a - b);
3
4 let res: number[][] = []
5 for (let i = 0; i < nums.length - 2; i++) {
6 if (i > 0 && nums[i] === nums[i - 1]) {
7 continue;
8 }
9
10 let left = i + 1;
11 let right = nums.length - 1;
12
13 while (left < right) {
14 let sum = nums[i] + nums[left] + nums[right];
15 if (sum === 0) {
16 res.push([nums[i], nums[left], nums[right]]);
17 left++;
18 right--;
19
20 while (left < right && nums[left] === nums[left - 1]) {
21 left++
22 }
23
24 while (left < right && nums[right] === nums[right + 1]) {
25 right--
26 }
27
28 } else if (sum > 0) {
29 right--
30 } else {
31 left++
32 }
33 }
34 }
35
36 return res;
37};