剑指offerbash
一、单调性框架
二、存在两段性的性质ui
一、肯定二分的边界spa
二、编写二分的代码框架设计
三、设计一个check 性质,答案在两段性质的分界点上code
四、判断一下区间如何更新模板
五、若是更新方式写的是 l=mid,r=mid-1,那么就在算mid的时候加上1class
二分查找模板test
版本1 :区间 [l,r] 的更新操做是 r=mid,l=mid+1;计算mid 绿颜色总结
int test( int l , int r){
while( l < r ){
int mid = l + r / 2;
if( check( mid ) ){
r = mid;
}else {
l= mid + 1;
}
}
return l;
}复制代码
版本2:区间[l,r] 的更新操做是 r = mid-1,l=mid 时,计算mid 红
int test2(int l ,int r){
while(l<r){
int mid = l+r+1/2;
if (check(mid)){
l = mid;
}else {
r = mid-1;
}
}
return l;
}复制代码