-
Notifications
You must be signed in to change notification settings - Fork 4
lower_bound, upper_bound
Changi Cho edited this page Dec 21, 2021
·
5 revisions
찾는 숫자 이상이 처음나오는 index
int lowerBound(vector<int> &nums, int target){
int size = nums.size();
int left = 0, right = size;
while(left < right){
int mid = left + (right - left) / 2;
if(target <= nums[mid]){
// pick left
right = mid;
}else if(nums[mid] < target){
// pick right
left = mid+1;
}
}
return right;
}찾는 숫자 초과가 처음 나오는 index
int upperBound(vector<int> &nums, int target){
int size = nums.size();
int left = 0, right = size;
while(left < right){
int mid = left + (right - left) / 2;
if(target < nums[mid]){
// pick left
right = mid;
}else if (nums[mid] <= target){
// pick right
left = mid + 1;
}
}
return right;
}