劍指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;
}複製代碼