下列哪个二分查找代码可以正确在升序有序数组中找到第一个大于等于目标值target的下标?

ke217524 单选题 共 个子题

已知升序有序数组nums = [1,2,2,3,4,5],目标值target=2,正确结果应为下标1。以下代码均使用int类型变量,数组下标从0开始计数:

A
int left = 0, right = nums.length - 1;
while(left <= right) {
    int mid = left + (right - left) / 2;
    if(nums[mid] >= target) {
        right = mid - 1;
    } else {
        left = mid + 1;
    }
}
return left;
B
int left = 0, right = nums.length - 1;
while(left <= right) {
    int mid = left + (right - left) / 2;
    if(nums[mid] >= target) {
        left = mid + 1;
    } else {
        right = mid - 1;
    }
}
return left;
C
int left = 0, right = nums.length - 1;
while(left < right) {
    int mid = left + (right - left) / 2;
    if(nums[mid] >= target) {
        right = mid;
    } else {
        left = mid + 1;
    }
}
return left;
D
int left = 0, right = nums.length - 1;
while(left <= right) {
    int mid = left + (right - left) / 2;
    if(nums[mid] < target) {
        left = mid;
    } else {
        right = mid - 1;
    }
}
return left;
正在加载题目数据…
已答 /
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析
讨论
发布
登录后参与讨论 立即登录
发布讨论需先绑定并验证手机号 去绑定手机号
加载中…
我
我
回复 @
回复 @
发送
还没有人讨论,来发表第一条吧