题型还在整理,整理完毕后再更新 😃
前言
模版还是
while (l < r) {
int mid = l + r >> 1;
if (check(mid)) l = mid + 1;
else r = mid;
}
while (l < r) {
int mid = l + r + 1 >> 1;
if (check(mid)) l = mid;
else r = mid - 1;
}
while (l < r) {
int mid = l + r >> 1;
if (check(mid)) r = mid;
else l = mid + 1;
}
while (l < r) {
int mid = l + r + 1 >> 1;
if (check(mid)) r = mid - 1;
else l = mid;
}
正向求解困难,而验证很容易的时候,通常都可以借助二分猜数做验证的方式来得到答案