[LeetCode]16.threeSumClosest

来源:互联网 发布:人工智能主要研究方向 编辑:程序博客网 时间:2024/05/17 03:18
/*************************************************题目:找出数组中3个数和最接近Target的值For example, given array S = {-1 2 1 -4}, and target = 1.The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).*************************************************/

int threeSumClosest1(vector<int>& nums, int target){if (nums.size() < 3) return 0;int closest = nums[0] + nums[1] + nums[2];for (int i = 0; i < nums.size()-2; i++){int front = i + 1;int back = nums.size() - 1;while (front < back){int Cursum = nums[front] + nums[back]+nums[i];if (abs(Cursum - target)<abs(closest - target))closest = Cursum;if (Cursum == target){closest = Cursum;return closest;}if (Cursum>target)back--;elsefront++;}    }return closest;}

0 0