16. 3Sum Closest

class Solution {
    public int threeSumClosest(int[] nums, int target) {
        Arrays.sort(nums);
        int ret=nums[0]+nums[1]+nums[2];
        for(int i=0;i<nums.length;i++)
        {
            int l=i+1;
            int r=nums.length-1;
            while(l<r)
            {
                int sum=nums[i]+nums[l]+nums[r];
                if(sum==target)
                    return target;
                if(Math.abs(sum-target)<Math.abs(ret-target))
                    ret=sum;
                if(sum-target<0)
                    l++;
                else
                    r--;
            }
        }
        return ret;
    }
}

 

转载于:https://www.cnblogs.com/asuran/p/7574332.html

评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符 “速评一下”
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页