Problem A: 二分查找入门模板

Problem A: 二分查找入门模板

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Description

https://blog.csdn.net/weixin_47406709/article/details/125660759



bool ok(int x){     //该函数定义要非常清晰
     检查验证x值是否符合自己的设
     符合 return true;
     不符合 return false;
}

int l=a,r=b,mid; //如果设定左边OK, 右边不OK, 那l一定要给一个绝对OK的数(或位置), r一定要给一个绝对不OK的数(或位置).  必要时可加哨兵数据. 

while(l+1<r){    //l+1<r 这个条件保证到最后l和r是相邻的, l在右边,r在右边
       mid=(l+r)/2;
       if(ok(mid)) l=mid;  //如果设定是左边ok的,那可以很放心地直接把mid给l。
      else r=mid;            
}

-1 0 1 2 2 3 4 5 5 5 6 6 7 8 8 9 9 9 10 888888
                  l  r