二分必须要有单调性

1.找到第一个>5的元素下标
int l=0,r=n+1;
while(l+1<r)
{
int mid=(l+r)>>1;
if(a[mid]>5)
{
r=mid;
}
else l=mid;
}
cout<<r<<endl;
2.找到最后一个<=5的元素下标
int l=0,r=n+1;
while(l+1<r)
{
int mid=(l+r)>>1;
if(a[mid]<=5)
{
l=mid;
}
else r=mid;
}
cout<<l<<endl;
题单
【蓝桥杯】适合使用二分法求解的题目的特征(附例题讲解、二分答案模版、超多巩固练习)_二分的题目特征-CSDN博客