在每天无限制的刷题与听课中,我渐渐找到了感觉
随着刷比较难的题目的增多,我对二分的训练渐渐地松懈下来,于是,这造成了我对于二分的疑问
Q1:
关于二分,有的时候对 l,r 赋初始值,有的时候太大了会爆掉,太小了又搜不到正确答案,请问初始赋值怎么赋最大值?
Q2:
关于二分的写法
我们常见的有
while(l<r)
while(l<=r)
这是判断退出条件的写法
然后判断条件
if(check(mid)) l=mid;
else r=mid;
or
if(check(mid)) l=mid+1;
else r=mid-1;
Q3:
怎么知道找的就是那个符合要求的值还是比符合要求的值大一点的数,还是小一点的数,如果是某个结果的话,如何调整代码的写法使三个都能分别实现
蒟蒻求教,谢谢各位大佬光临,小生不尽感激