Skip to content

Commit 4ac058a

Browse files
solves 3 sum
1 parent 5faaca7 commit 4ac058a

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
| 12 | [Integer to Roman](https://leetcode.com/problems/integer-to-roman) | [![Java](assets/java.png)](src/IntegerToRoman.java) | |
2424
| 13 | [Roman To Integer](https://leetcode.com/problems/roman-to-integer/) | [![Java](assets/java.png)](src/RomanToInteger.java) [![Python](assets/python.png)](python/roman_to_integer.py) | [![java-yt](assets/java-yt.png)](https://youtu.be/BCue_mO_81A) [![python-yt](assets/python-yt.png)](https://youtu.be/8h_yGTNvKMA) |
2525
| 14 | [Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/) | [![Java](assets/java.png)](src/LongestCommonPrefix.java) [![Python](assets/python.png)](python/longest_common_prefix.py) | |
26+
| 15 | [3Sum](https://leetcode.com/problems/3sum) | [![Java](assets/java.png)](src/ThreeSum.java) | |
2627
| 20 | [ValidParentheses](https://leetcode.com/problems/valid-parentheses/) | [![Java](assets/java.png)](src/ValidParentheses.java) [![Python](assets/python.png)](python/valid_parentheses.py) | |
2728
| 21 | [Merge 2 Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/) | [![Java](assets/java.png)](src/Merge2SortedLists.java) [![Python](assets/python.png)](python/merge_2_sorted_lists.py) | |
2829
| 26 | [Remove Duplicates From Sorted Array](https://leetcode.com/problems/remove-duplicates-from-sorted-array/) | [![Java](assets/java.png)](src/RemoveDuplicatesFromSortedArray.java) [![Python](assets/python.png)](python/remove_duplicates_from_sorted_array.py) | |

src/ThreeSum.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import java.util.ArrayList;
2+
import java.util.Arrays;
3+
import java.util.Collections;
4+
import java.util.HashSet;
5+
import java.util.List;
6+
import java.util.Set;
7+
8+
public class ThreeSum {
9+
public List<List<Integer>> threeSum(int[] nums) {
10+
if (nums.length < 3) return Collections.emptyList();
11+
final Set<List<Integer>> triplets = new HashSet<>();
12+
Arrays.sort(nums);
13+
14+
for (int i = 0; i < nums.length - 2; i++) {
15+
for (int j = i + 1, k = nums.length - 1 ; j < k ; ) {
16+
int sum = nums[i] + nums[j] + nums[k];
17+
if (sum == 0) triplets.add(List.of(nums[i], nums[j++], nums[k--]));
18+
else if (sum > 0) k--;
19+
else j++;
20+
}
21+
}
22+
23+
return new ArrayList<>(triplets);
24+
}
25+
}

0 commit comments

Comments
 (0)