二分查找避免死循环
模板一:在求mid时不加1,将数列分成[l,mid]和[mid+1,r]两个部分
while(l<r)
{
int mid=(l+r)/2;
if(check(mid)) r=mid;
else l=mid+1;
}
模板二:在求mid时加1,将数列分成[l,mid-1]和[mid,r]两个部分
while(l<r)
{
int mid=(l+r+1)/2;
if(check(mid)) r=mid-1;
else l=mid;
}
但如果定
原创
2020-08-30 21:53:20 ·
345 阅读 ·
0 评论