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:
13#include < vector>
24#include < unordered_map>
35#include < set>
@@ -33,3 +35,46 @@ class Solution {
3335 return vector<vector<int >>(result.begin (), result.end ());
3436 }
3537};
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