题解 | #二分查找-I#

二分查找-I

https://www.nowcoder.com/practice/d3df40bd23594118b57554129cadf47b

二分法,我用了三个指针,其中最后需要考虑start end两个位置。/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param nums int整型一维数组
 * @param numsLen int nums数组长度
 * @param target int整型
 * @return int整型
 */
int search(int* nums, int numsLen, int target ) {
    // write code here

    int start =  0;
    int end = numsLen - 1;
    int mid = (start + end) / 2;
    while (start != mid) {
        if (target == nums[mid]) {
            return mid;
        }
        if  (target > nums[mid]) {
            start = mid;

        } else {
            end = mid;

        }
        mid = (start + end) / 2;
    }
    if (target == nums[mid]) {
        return mid;
    }
    if (target == nums[end]) {
        return end;
    } else {
        return -1;

    }
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务