int threeSumClosest(vector<int>& nums, int target) {
int size = nums.size();
int mindif = INT_MAX;
int minsum;
sort(nums.begin(), nums.end());
for (int i = 0; i < size - 2; ++i) {
int j = i + 1, k = size - 1;
while (j < k) {
int sum = nums[i] + nums[j] + nums[k];
int dif = abs(target - sum);
if (dif < mindif) {
mindif = dif;
minsum = sum;
}
if (mindif == 0)
return minsum;
if (sum < target) ++j;
else --k;
}
while (i < size - 2 && nums[i] == nums[i + 1]) ++i;
}
return minsum;
}
16. 最接近的三数之和/C++
最新推荐文章于 2023-01-02 21:48:55 发布