3Sum Closest

 

    int threeSumClosest(vector<int> &num, int target) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        sort(num.begin(),num.end());
        int i,j,k;
        int sum,cursum;
        int curDiff = INT_MAX;
        for(i=0;i<num.size()-2;i++)
        {
            j = i+1;
            k = num.size()-1;
            while(j<k)
            {
                cursum = num[i] + num[j] + num[k];
                if(cursum==target)
                    return cursum;
                if(abs(cursum-target)<curDiff)
                {
                    sum = cursum;
                    curDiff = abs(cursum-target);
                }
                if(cursum>target)
                    k--;
                else j++;
            }
        }
        return sum;
        
    }

  

posted @ 2013-10-04 22:12  summer_zhou  阅读(124)  评论(0编辑  收藏  举报