本文主要是介绍【LeetCode】最接近的三数之和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目要求
解题思路
这道题解题方法和三数之和解题思路一样,可以参考上一篇博客
代码实现
class Solution
{
public:int threeSumClosest(vector<int>& nums, int target) {//排序sort(nums.begin(),nums.end());int len=nums.size();//固定一个,利用双指针解决int cur=0;long sum=INT_MAX;while(cur<len){int left=cur+1,right=len-1;while(left<right){if(nums[cur]+nums[left]+nums[right]==target) return target;else if(nums[cur]+nums[left]+nums[right]>target) {if(abs(sum-target)>nums[cur]+nums[left]+nums[right]-target) sum=nums[cur]+nums[left]+nums[right];right--;}else{if(abs(sum-target)>target-nums[cur]-nums[left]-nums[right]) sum=nums[cur]+nums[left]+nums[right];left++;}}cur++;}return sum;}
};
这篇关于【LeetCode】最接近的三数之和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!