File tree 1 file changed +44
-0
lines changed
1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments