int n, k;
void solve()
{
int lb = -1, ub = n;
//重复循环,直到解的存在范围不大于1
while (ub - lb > 1) {
int mid = (lb + ub) / 2;
if (a[mid] >= k) {
//若果mid满足条件,则解的存在范围变为(lb, mid]
ub = mid;
} else {
//如果mid不满足条件,则解的存在条件变为(mid, ub]
lb = mid;
}
}
//这时, lb + 1 = ub;
printf("%d\n", ub);
}
从有序数组中查找某个值
最新推荐文章于 2024-04-24 21:20:34 发布