Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution. 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). 解析:(1)对数组进行排序。(2)遍历数组中的每个元素。设置两个指针,start指向该元素后一个位置,last指向数组的末尾。(3)求出这三个数之和与目标值得差值,如果当前差值小于上一次的差值,则把当前差值更新为最小的差值。同时更新最后结果为三数之和。最后返回结果即可。int threeSumClosest(vector<int>& nums, int target) { //最近距离 int closestNum = INT_MAX; //三个数之和 int res = 0; //当数组长度小于三时,返回最大整数 if (nums.size() < 3) return closestNum; //对数组进行排序 sort(nums.begin(), nums.end()); //遍历数组 for (int i = 0; i < nums.size() - 2; ++i) { int start = i + 1; int last = nums.size() - 1; whi
3Sum Closest(离目标值最近的三数之和)
最新推荐文章于 2022-09-10 23:13:56 发布