GESP C++ 真题 · 逐题精解
首页C++五级真题 › 2024年12月 › 第12题

GESP 2024年12月 C++五级 单选题 第12题

C++五级单选题2024年12月第12题

所属知识点:查找与二分 难度要求:掌握 考频:—

给定一个长度为 的有序数组 nums ,其中可能包含重复元素。下面的函数返回数组中某个元素 target 的 左边界,若数组中不包含该元素,则返回 −1 。例如在数组 nums = [5,7,7,8,8,10] 中查找 target=8 ,函数返 回 在数组中的左边界的索引为 。则横线上应填写的代码为( )。
int getLeftBoundary(vector<int>& nums, int target) {
int left = 0;
int right = nums.size() - 1;
while (left < right) {
int middle = left + ((right - left) / 2);
if (target <= nums[middle])
________________________________    // 在此处填入代码
else
left = middle+1;
}
return nums[left]==target?left:-1;
}

正确答案:B

题目解析

找左边界:当 target<=nums[middle] 时把 right=m………

完整解析为会员内容二级及以上的逐题精讲需开通 VIP。一级解析全部免费。前往 GESPPASS 解锁

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习