leetcode-3sumclosest

class Solution {
public:
    int threeSumClosest(vector<int> &num, int target)
    {
        int len = num.size();
        sort(num.begin(),num.end());
        int diff = INT_MAX;
        int result;
        int i,j,k;
        int sum;
        for(i=0;i<len-2;i++)
        {
            j = i+1;
            k = len -1;
            while(j<k)
            {
                sum = num[i]+num[j]+num[k];
                if(abs(sum-target)<diff)
                {
                    diff = abs(sum-target);
                    result = sum;
                }
                if(sum>target)
                {
                    k--;
                    continue;
                }
                if(sum<target)
                {
                    j++;
                    continue;
                }
                return target;
            }
        }
        return result;
    }
};
posted @ 2014-06-05 09:15  海滨银枪小霸王  阅读(114)  评论(0编辑  收藏  举报