最接近的三数之和
思路:排序+双指针
时间复杂度:
O
(
n
2
)
O(n^2)
O(n2)
–> 类似于三数之和的思想
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
sort(nums.begin(), nums.end());
int n = nums.size();
int res = nums[0] + nums[1] + nums[2];
for (int i = 0; i < n; ++i) {
int l = i+1, r = n - 1;
while (l < r) {
int sum = nums[l] + nums[i] + nums[r];
if (abs(target - sum) < abs(target - res)) res = sum;
if (sum > target) r--;
else if (sum < target) l++;
else return res;
}
}
return res;
}
}