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

已知升序有序数组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;
程序运行统计
暂无判题统计
提交0次 正确率0.00%
答案解析