leetcode 3Sum Closest

来源:互联网 发布:json去掉不需要的字段 编辑:程序博客网 时间:2024/04/28 11:18
class Solution {public:    int threeSumClosest(vector<int> &num, int target) {        int res = (-1u>>2);        sort(num.begin(), num.end());        for(int i=0; i<num.size()-2; ++i)            for(int j=i+1; j<num.size()-1; ++j)            {                int toFind = target - num[i] - num[j];                vector<int>::iterator it;                it = lower_bound(num.begin()+j+1, num.end(), toFind);                if(it != num.end())                {                    int tmp = abs(*it - toFind);                    if(tmp < abs(res - target))                        res = num[i]+num[j]+*it;                }                it -= 1;                if(it >= num.begin()+j+1)                {                    int tmp = abs(*it - toFind);                    if(tmp < abs(res - target))                        res = num[i]+num[j]+*it;                }            }        return res;    }};