#include <iostream>
#include <vector>
using namespace std;
int find(vector<int> &nums, int target)
{
int size = nums.size();
int l = 0, r = size-1, pos = -1;
while(l <= r)
{
int mid = (l+r)>>1;
if(nums[mid] < target)
{
// cout << 1 << endl;
// cout << "l: " << l << " r: " << r << " mid: " << mid << endl;
pos = mid;
l = mid+1;
}
else
{
// cout << 2 << endl;
// cout << "l: " << l << " r: " << r << endl;
r = mid-1;
}
// cout << "l: " << l << " r: " << r << endl;
}
return pos;
}
int main()
{
// Solution s;
vector<int> nums{1,2,3,4,5,6,7,8,9};
cout << find(nums, 10) << endl;
return 0;
}
二分查找 查找序列中比target小的最大值
最新推荐文章于 2024-05-21 19:54:20 发布