leetcode 3Sum

来源:互联网 发布:手机淘宝优惠券转化 编辑:程序博客网 时间:2024/06/08 15:22

题目链接

public class Solution {    public   List<List<Integer>> result = new LinkedList<List<Integer>>();      public   List<List<Integer>> threeSum(int[] nums) {        Arrays.sort(nums);        int last=Integer.MAX_VALUE;        for(int i=0;i<nums.length&&nums[i]<=0;i++)        {            if(last==nums[i])            {                continue;            }            last=nums[i];            fun(nums,0-nums[i],i+1,nums.length-1);        }        return result;    }    public void fun(int[] nums,int target,int start,int end)    {    int lastStart=Integer.MAX_VALUE;        int lastEnd=Integer.MAX_VALUE;        while(start<end)        {            lastStart=nums[start];            lastEnd=nums[end];            if(nums[start]+nums[end]==target)            {                LinkedList<Integer> temp=new LinkedList<Integer>();                temp.add(0-target);                temp.add(nums[start]);                temp.add(nums[end]);                result.add(temp);                while(start<end&&nums[start]==nums[start+1])                {                    start++;                }                while(start<end&&nums[end-1]==nums[end])                {                    end--;                }                start++;                end--;            }            else if(nums[start]+nums[end]<target)            {                start++;            }            else            {                end--;            }        }    }}
0 0
原创粉丝点击