二分答案
在一个给定区间内,通过二分查找来找到所需要的答案
int N, ans;
bool check(int value)
{
}
void binary_search()
{
int left = 0, right = N;
while (left <= right)
{
int mid = (left + right) >> 1; // mid = (left + right) / 2
if (check(mid))
{
ans = mid; // mid满足要求
left = mid + 1; //尝试更大的可能
}
else
right = mid - 1; // mid不满足要求,尝试更小的可能
}
}