‹ 上一题 下一题 ›

g5-04459. GESP-5级-2025-12-单选-第11题 未做

下面代码尝试在有序数组中查找第一个大于等于 的元素位置。如果没有大于等于 的元素,返回 arr.size()。以下说法正确的是( )。

int lower_bound(vector<int>& arr, int x) {
    int l = 0, r = arr.size();
    while(l < r) {
        int mid = l + (r - l) / 2;
        if(arr[mid] >= x) r = mid;
        else l = mid + 1;
    }
    return l;
}
  • A. 上述代码逻辑正确
  • B. 上述代码逻辑错误,while 循环条件应该用 l <= r
  • C. 上述代码逻辑错误,mid 计算错误
  • D. 上述代码逻辑错误,边界条件不对
未选择
输入
输出

            
答案