题目链接如下:
LeetCode 15—3Sum
其实现代码如下:
public class Problem15 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums={0,0,0};
threeSum(nums);
}
public static List<List<Integer>> threeSum(int[] nums) {
List<List<Integer>> list =new ArrayList<List<Integer>>();
Arrays.sort(nums);
for(int i=0;i<=nums.length-3;i++){
if(nums[i]>0) break;
if(i>0 && nums[i]==nums[i-1]) continue;
int j=i+1;
int k=nums.length-1;
while(j<k){
if((j-1)>i && nums[j]==nums[j-1] ){
j++;
continue;
}
if(k+1<=nums.length-1 && nums[k]==nums[k+1]){
k--;
continue;
}
if(nums[i]+nums[j]+nums[k]>0){
k--;
}
else if(nums[i]+nums[j]+nums[k]==0){
ArrayList<Integer> arr =new ArrayList<Integer>();
arr.add(nums[i]);
arr.add(nums[j]);
arr.add(nums[k]);
list.add(arr);
j++;
k--;
}
else{
j++;
}
}
}
return list;
}
}