AcWing算法基础课 二分查找

二分查找的本质是寻找一个性质,使数组的左侧全不满足,右侧全满足(或左侧全满足,右侧全不满足)。
查找的结果是最后一个或第一个满足的点(左侧区间最右或右侧区间最左)
根据两种情况,有不同的check()、mid、l、r写法

查左侧区间最右

mid=(l+r+1)>>1;

if(check(mid))

  l=mid;

else

  r=mid-1;

查右侧区间最左

mid=(l+r)>>1;

if(check(mid))

  r=mid;

else

  l=mid+1;

例题 AcWing 789数的范围

posted @ 2021-12-08 20:15  80k  阅读(62)  评论(0)    收藏  举报