class Solution {
public:
int UpperBound(vector<int>& arr, int target) {
// code here
int low = 0;
int high = arr.size();
while(low<high){
int mid= (low+high)/2;
if(arr[mid] >= target){
high = mid;
}else{
low = mid+1;
}
}
return high;
}
};
class Solution {
public:
int lowerBound(vector<int>& arr, int target) {
// code here
int low = 0;
int high = arr.size();
while(low<high){
int mid= (low+high)/2;
if(arr[mid] < target){
low = mid+1;
}else{
high = mid;
}
}
return low;
}
};