File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+
2
+ // Hashmap Solution:
1
3
#include < vector>
2
4
#include < unordered_map>
3
5
#include < set>
@@ -33,3 +35,46 @@ class Solution {
33
35
return vector<vector<int >>(result.begin (), result.end ());
34
36
}
35
37
};
38
+
39
+
40
+ // Two Pointer Solution:
41
+ #include < vector>
42
+ #include < algorithm>
43
+
44
+ using namespace std ;
45
+
46
+ class Solution {
47
+ public:
48
+ vector<vector<int >> threeSum (vector<int >& nums) {
49
+ sort (nums.begin (), nums.end ());
50
+ int n = nums.size ();
51
+ vector<vector<int >> answer;
52
+
53
+ for (int i = 0 ; i < n; i++) {
54
+ if (nums[i] > 0 ) {
55
+ break ;
56
+ }
57
+ if (i > 0 && nums[i] == nums[i - 1 ]) {
58
+ continue ;
59
+ }
60
+ int lo = i + 1 , hi = n - 1 ;
61
+ while (lo < hi) {
62
+ int sum = nums[i] + nums[lo] + nums[hi];
63
+ if (sum == 0 ) {
64
+ answer.push_back ({nums[i], nums[lo], nums[hi]});
65
+ lo++;
66
+ hi--;
67
+ while (lo < hi && nums[lo] == nums[lo - 1 ]) lo++;
68
+ while (lo < hi && nums[hi] == nums[hi + 1 ]) hi--;
69
+ } else if (sum < 0 ) {
70
+ lo++;
71
+ } else {
72
+ hi--;
73
+ }
74
+ }
75
+ }
76
+
77
+ return answer;
78
+ }
79
+ };
80
+
You can’t perform that action at this time.
0 commit comments