Skip to content

Commit fa2c6ac

Browse files
Time: 26 ms (51.16%), Space: 42.4 MB (95.08%) - LeetHub
1 parent d184342 commit fa2c6ac

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

3sum/3sum.java

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
class Solution {
2+
3+
4+
public List<List<Integer>> threeSum(int[] nums) {
5+
Arrays.sort(nums);
6+
List<List<Integer>> triplets=new ArrayList<>();
7+
for(int i=0;i<nums.length-2;i++)
8+
{
9+
if(i>0&&nums[i]==nums[i-1])
10+
continue;
11+
searchTriplet(nums,-nums[i],i+1,triplets);
12+
}
13+
14+
return triplets;
15+
}
16+
17+
public static void searchTriplet(int[] arr,int target,int left,List<List<Integer>> triplets)
18+
{
19+
int right=arr.length-1;
20+
while(left<right)
21+
{
22+
int currSum=arr[left]+arr[right];
23+
if(currSum==target)
24+
{
25+
triplets.add(Arrays.asList(-target,arr[left],arr[right]));
26+
left++;
27+
right--;
28+
29+
30+
while(left<right&&arr[left]==arr[left-1])
31+
left++;
32+
while(left<right&&arr[right]==arr[right+1])
33+
right--;
34+
}
35+
36+
else if(target>currSum)
37+
left++;
38+
else
39+
right--;
40+
41+
}
42+
43+
}
44+
}

0 commit comments

Comments
 (0)