Skip to content

Commit 9c1260c

Browse files
committed
3sum solution
1 parent ebd571e commit 9c1260c

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

3sum/PDKhan.cpp

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
class Solution {
2+
public:
3+
vector<vector<int>> threeSum(vector<int>& nums) {
4+
vector<vector<int>> result;
5+
sort(nums.begin(), nums.end());
6+
7+
for(int i = 0; i < nums.size(); i++){
8+
if(i > 0 && nums[i] == nums[i-1])
9+
continue;
10+
11+
int left = i + 1;
12+
int right = nums.size() - 1;
13+
14+
while(left < right){
15+
int sum = nums[i] + nums[left] + nums[right];
16+
17+
if(sum == 0){
18+
result.push_back({nums[i], nums[left], nums[right]});
19+
left++;
20+
right--;
21+
22+
while(left < right && nums[left] == nums[left-1])
23+
left++;
24+
25+
while(left < right && nums[right] == nums[right+1])
26+
right--;
27+
}else if(sum < 0)
28+
left++;
29+
else
30+
right--;
31+
}
32+
}
33+
34+
return result;
35+
}
36+
};

0 commit comments

Comments
 (0)