[LeetCode] 16. 3Sum Closest

来源:互联网 发布:如何测试网络的连通性 编辑:程序博客网 时间:2024/05/21 07:09

思路:
和3Sum差不多, 因为最终只要返回一个结果值, 所以更省事, 在内层循环做各种判断即可, 其他的可以看上一篇3Sum的文章.

int threeSumClosest(vector<int>& nums, int target) {    int res;    sort(nums.begin(), nums.end());    for (int i = 0; i < nums.size(); i++) {        if (i && nums[i] == nums[i - 1]) continue;        int head = i + 1, tail = nums.size() - 1;        while (head < tail) {            int sum = nums[i] + nums[head] + nums[tail];            if (sum == target) return sum;            if (abs(sum - target) < abs(res - target)) res = sum;            if (sum < target) head++;            else tail--;        }    }    return res;}
0 0
原创粉丝点击