以下代码片段中,能正确在升序整数数组中找到第一个大于等于目标值target的元素下标的是?

nu620730 单选题 共 个子题

例如对于升序数组[1,2,2,3,4],当目标值target=2时,正确结果应为下标1。以下四个选项均为Java实现的二分查找代码:

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