lower_bound函数实现
- 函数功能是查找数组中第一个大于等于target的数的位置:
int lower_bound(vector<int>& nums, int target) {
int l = 0, r = nums.size();
while (l < r) {
int mid = l + ((r - l) >> 1);
if (nums[mid] < target) {
l = mid + 1;
} else {
r = mid;
}
}
return l;
}
upper_bound函数实现
- 函数功能是查找数组中第一个大于target的数的位置:
int upper_bound(vector<int>& nums, int target) {
int l = 0, r = nums.size();
while (l < r) {
int mid = l + ((r - l) >> 1);
if (nums[mid] <= target) {
l = mid + 1;
} else {
r = mid;
}
}
return l;
}