forked from JohnJordan0098/Data-Structures-Algos
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLeetCode_3Sum.java
More file actions
24 lines (24 loc) · 867 Bytes
/
LeetCode_3Sum.java
File metadata and controls
24 lines (24 loc) · 867 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public List<List<Integer>> threeSum(int[] nums) {
Arrays.sort(nums);
List<List<Integer>> list = new LinkedList<>();
for(int i=0 ; i<nums.length-2 ; i++){
if(i==0 || (i>0&&nums[i]!=nums[i-1])){
int lo = i+1, hi = nums.length-1, sum=0-nums[i];
while(lo<hi){
if(nums[lo]+nums[hi]==sum){
list.add(Arrays.asList(nums[i],nums[lo],nums[hi]));
while(lo<hi&&nums[lo]==nums[lo+1]) lo++;
while(lo<hi&&nums[hi]==nums[hi-1]) hi--;
hi--;lo++;
}else if(nums[lo]+nums[hi]<sum){
lo++;
}else{
hi--;
}
}
}
}
return list;
}
}