首页 > 其他 > 详细

15. 3Sum

时间:2016-08-10 20:57:53      阅读:207      评论:0      收藏:0      [点我收藏+]
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Solution {
    public List<List<Integer>> threeSum(int[] nums) {
        int size=nums.length;
        List<List<Integer>> res=new ArrayList<List<Integer>>();
          if(size<3)
            return res;
        Arrays.sort(nums);
        size=nums.length;
        for(int i=0;i<size-2;i++)
        {
            int left=i+1;
            int right=size-1;
            while(left<right)
            {
//                System.out.println("left is :" + left);
//                System.out.println("right is :" + right);
                if(nums[i]+nums[left]+nums[right]==0)
                {
                    //将结果加入到res当中 
                    List<Integer> temp=new ArrayList<Integer>();
                    temp.add(nums[i]);
                    temp.add(nums[left]);
                    temp.add(nums[right]);
                    res.add(temp);
                    while(left<right&&nums[left+1]==nums[left])
                        left++;
                    while(left<right&&nums[right-1]==nums[right])
                        right--;
                    left++;
                    right--;
                    
                }
                else if(nums[i]+nums[left]+nums[right]>0)
                {
                    right--;
                }
                else
                {
                    left++;
                }
            }
            while(i+1<size&&nums[i+1]==nums[i])
                i++;
        }
        return res;
        
    }
}

 

15. 3Sum

原文:http://www.cnblogs.com/aguai1992/p/5758332.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!