在包含size个元素的数组a里面找到比p小的下标最大的元素,返回其下标
注:a必须为排好序的数组
int lowerbound(int a[],int p,int size)
{
int L=0;
int R=size-1;
int last = -1;
while(L<=R)
{
int mid = L+(R-L)/2;//不用(L+R)/2可能会有溢出int的风险
if(a[mid]>=p)
{
R=mid-1;
}
else{
last=mid;
L=mid+1;
}
return last;
}