题解 | #二分查找-I#

二分查找-I

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

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @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;
    if(nums[start] == target){
            return start;
    }

    if(nums[end] == target) {
            return end;
    }
    while (start + 1 < end){
        mid = start + (end - start) / 2;
        printf("mid = %d, start = %d, end = %d\n", mid, start, end);
        printf("nums[%d] = %d \n", mid, nums[mid]);
        

        if(target == nums[mid]){
            printf("target == nums[mid]\n");
            return mid;
        }else if(target > nums[mid]){
            printf("target > nums[mid]\n");
            start = mid;
        }else {
            printf("target < nums[mid]\n");
            end = mid;
        }
    }

    return -1;
}

全部评论

相关推荐

神哥了不得:放平心态,再找找看吧,主要现在计算机也变卷了,然后就比较看学历了,之前高中毕业你技术强,都能找到工作的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务