查找大于等于/大于key的第一个元素(最大值最小)
int l=1,r=n;
while(l<r)
{
int mid=l+r>>1;
if(a[mid]>key)
r=mid;
else
l=mid+1;
}
return l;
查找小于等于/小于key的最后一个元素(最小值最大)
int l=1,r=n;
while(l<r)
{
int mid=l+r+1>>1;
if(a[mid]<key)
l=mid;
else
r=mid-1;
}
return l;
其中二分答案时判断语句可换为check函数