leetcode --16. 3Sum Closest

来源:互联网 发布:mac开机后怎么换系统 编辑:程序博客网 时间:2024/06/05 12:48

题目:https://leetcode.com/problems/3sum-closest/description/

代码:

class Solution {public:    int threeSumClosest(vector<int>& nums, int target) {        if(nums.size() < 3) return 0;        sort(nums.begin(), nums.end());        int closet = nums[0]+nums[1]+nums[2];        for(int i =0;i<nums.size()-2;i++){            if(i>0&&nums[i]==nums[i-1]) continue;            int start = i+1,end = nums.size()-1;            while(start<end){                int sum = nums[i]+nums[start]+nums[end];                if(sum == target) return sum;                if(abs(target-closet)>abs(sum-target)){                    closet = sum;                }                if(sum>target) end--;                if(sum<target) start++;            }        }        return closet;    }};