File tree Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Expand file tree Collapse file tree 1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change 1+ //015. 3Sum 
2+ class  Solution  {
3+     public  List <List <Integer >> threeSum (int [] nums ) {
4+         //create result list to store i,j,k 
5+         List <List <Integer >> result  = new  LinkedList <List <Integer >>();
6+         
7+         //sorting nums 
8+         Arrays .sort (nums );
9+         
10+         for  (int  i  = 0 ; i  < nums .length  - 2 ; i ++) {
11+ 
12+             int  left  = i  + 1 ;
13+             int  right  = nums .length  - 1 ;
14+ 
15+             if  (i  > 0  && nums [i ] == nums [i -1 ]) {
16+                 continue ; //if nums have same numbers, just check one time. 
17+             } 
18+             
19+             while  (left  < right ) {
20+                 int  sum  = nums [left ] + nums [right ] + nums [i ];
21+                 
22+                 if  (sum  == 0 ) {
23+                     //if sum == 0, store i,j,k 
24+                     result .add (Arrays .asList (nums [i ], nums [left ], nums [right ]));
25+                     left ++; //check anoter case 
26+                     right --;
27+                     //if next number == now number 
28+                     while  (nums [left ] == nums [left  - 1 ] && left  < right ) {
29+                         left ++;
30+                     }
31+                     while  (nums [right ] == nums [right  + 1 ] && left  < right ) {
32+                         right --;
33+                     } 
34+                 } else  if  (sum  > 0 ) {
35+                     //if sum > 0, right--; 
36+                     right --;
37+                 } else  {
38+                     //if sum < 0, left++; 
39+                     left ++;
40+                 }
41+             }
42+         }
43+         
44+         return  result ; //return result list 
45+     }
46+ }
47+  
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments