int findMinValid(int left, int right) {
int ans = -1;
while (left <= right) {
int mid = (left+right)/2;
if (check(mid))
{
// 满足条件,尝试找更小的解
ans = mid; // 记录当前有效解
right = mid - 1; // 缩小右边界
} else {
// 不满足条件,需要增大值
left = mid + 1;
}
}
return ans; // 若返回-1表示无满足条件的值
}
int findMaxValid(int left, int right) {
int ans = -1; // 初始化为无效值
while (left <= right) {
int mid = (left+right)/2;
if (check(mid)) {
// 满足条件,尝试找更大的解
ans = mid; // 记录当前有效解
left = mid + 1; // 扩大左边界
} else {
// 不满足条件,需要减小值
right = mid - 1;
}
}
return ans;
}