Skip to content

Commit 076b11c

Browse files
committed
3sum solution
1 parent 5527f2b commit 076b11c

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

3sum/dylan-jung.cpp

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

0 commit comments

Comments
 (0)