Skip to content

Commit c643cc8

Browse files
authored
Merge pull request #52 from ArwaNayef/patch-2
Create 15-3Sum
2 parents aa44b64 + b01c16f commit c643cc8

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

java/15-3Sum

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
class Solution {
2+
//2 pointers
3+
public List<List<Integer>> threeSum(int[] nums) {
4+
Arrays.sort(nums);
5+
LinkedList<List<Integer>> sol = new LinkedList<List<Integer>>();
6+
7+
for (int i = 0; i < nums.length - 2; i++) {
8+
if (i == 0 || (i > 0 && nums[i] != nums[i - 1])) {
9+
int target = 0 - nums[i];
10+
int left = i + 1;
11+
int right = nums.length - 1;
12+
13+
while (left < right) {
14+
if (nums[left] + nums[right] == target) {
15+
ArrayList<Integer> miniSol = new ArrayList<>();
16+
miniSol.add(nums[i]);
17+
miniSol.add(nums[left]);
18+
miniSol.add(nums[right]);
19+
sol.add(miniSol);
20+
while (left < right && nums[left] == nums[left + 1]) {
21+
left++;
22+
}
23+
while (left < right && nums[right] == nums[right - 1]) {
24+
right--;
25+
}
26+
left++;
27+
right--;
28+
} else if (nums[left] + nums[right] > target) {
29+
right--;
30+
} else {
31+
left++;
32+
}
33+
}
34+
}
35+
}
36+
37+
return sol;
38+
}
39+
}

0 commit comments

Comments
 (0)