3Sum Closest

来源:互联网 发布:linux 查看服务器编码 编辑:程序博客网 时间:2024/04/29 08:24

tags:two pointers

解法思想见:http://www.sigmainfy.com/blog/summary-of-ksum-problems.html

代码:

<span style="font-size:18px;">class Solution {public:    int threeSumClosest(vector<int>& nums, int target) {        sort(nums.begin(), nums.end());        int size = nums.size(), min = INT_MAX;        int temp, i, j, a;        int res = nums[0]+nums[1]+nums[size-1];        for(int k = 0; k <= size-3; k++){            temp = target-nums[k];            i = k+1;            j = size-1;            while(i<j){                a = nums[i]+nums[j]-temp;                if(a==0) return a + target;                if(a>0) j--;                else i++;                if(abs(a)<min){                    min = abs(a);                    res = a + target;                }            }        }        return res;    }};</span>


0 0