C++基础算法 | 二分搜索(Binary Search)
一般用第三个
mid=start+(end-start)/2,最后结果是(start,end)这里需要判断,mid最后是什么,再判断start是什么,end是什么
// 左右界限
left, right;
while (left <= right) {
mid = left + (right - left) / 2;
if (check(mid)) {
// 如果满足条件,记录答案
...
// 减小右边界以找到更小的满足要求的值
right = mid - 1;
} else {
// 如果不满足条件,增加天数以放宽条件
left = mid + 1;
}
}
//猜答案的话,需要加上check()
bool check(mid)
{
}
二分搜索模板 | |