模板1
//最小值最大,往右边找答案
int left = 0;
int right = max;
int middle = 0;
while(left < right) {
middle = (left + right + 1) >> 1;
if(check(middle)) {
left = middle
}else {
right = middle - 1;
}
}
模板2
//最大值最小,往左边找答案
int left = max;
int right = sum;
int middle = 0;
while(left < right) {
middle = (left + right) >> 1;
if(check(middle)) {
right = middle;
}else {
left = middle + 1;
}
}