leetcode刷題(30天)-15. 三數之和

class Solution {    
	public List<List<Integer>> threeSum(int[] nums) {            
	List<List<Integer>> arr = new ArrayList();            
	if (nums.length == 0){  // 輸入爲空                return arr;            }            
	Arrays.sort(nums); //排序            
	int j =0;            
	int k =0;            
	for(int i = 0;i<nums.length;i++){                
	if(i > 0&&nums[i] == nums[i-1]){continue;}   // 去重                
	j= i+1;                
	k = nums.length-1;                                
	while(j<k){                    
	if(nums[j] + nums[k] ==-nums[i]){                        
	List<Integer> cur = new ArrayList();                            
	cur.add(nums[k]);                            
	cur.add(nums[j]);                            
	cur.add(nums[i]);                            
	arr.add(cur);
                    
                    
     while(  j<k && nums[j] == nums[j+1]){j++;}                    
     while( j<k && nums[k] == nums[k-1] ){k--;}                    
                    k--;                    
                    j++;                    
                    }                    
                    else if(nums[j] + nums[k]<-nums[i]){                            
                    j++;                    }                    
                    else{                    k--;                    }                    
                    }                                    
                    }                
                    return arr;                            
     }}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章