找和最接近但不超过K的两个元素代码
时间: 2023-03-26 15:02:00 浏览: 75
以下是找和最接近但不超过K的两个元素的代码:
#include <iostream>
#include <algorithm>
#include <vector>
#include <climits>
using namespace std;
void findClosestPair(vector<int>& nums, int k) {
sort(nums.begin(), nums.end());
int n = nums.size();
int left = , right = n - 1;
int diff = INT_MAX;
int closestLeft = -1, closestRight = -1;
while (left < right) {
int sum = nums[left] + nums[right];
if (sum <= k) {
if (k - sum < diff) {
diff = k - sum;
closestLeft = left;
closestRight = right;
}
left++;
} else {
right--;
}
}
if (closestLeft == -1 || closestRight == -1) {
cout << "No such pair found." << endl;
} else {
cout << "Closest pair: " << nums[closestLeft] << " and " << nums[closestRight] << endl;
}
}
int main() {
vector<int> nums = {1, 2, 3, 4, 5};
int k = 7;
findClosestPair(nums, k);
return ;
}