16. 3Sum Closest

来源:互联网 发布:java安卓4.4.4模拟器 编辑:程序博客网 时间:2024/06/07 12:06

这个题目确实不知道这种解法,看来以后遇到问题得多思考这种  指针挪动  的方法了,加油

class Solution {public:    int threeSumClosest(vector<int>& nums, int target) {       int length=nums.size(),res=nums[0]+nums[1]+nums[2];        sort(nums.begin(),nums.end());       for(int i=0;i<length-2;i++)       {           int j=i+1,k=length-1;           while(k>j)           {               int sum=nums[i]+nums[j]+nums[k];               if(abs(target-sum)<abs(target-res))                   res=sum;               if(sum>target)                   k--;               else if(sum==target)                   return target;               else                   j++;           }       }        return res;    }};
具体的画图解释,见链接:https://leetcode.com/problems/3sum-closest/discuss/