题解 | #二分查找-II#

二分查找-II

http://www.nowcoder.com/questionTerminal/4f470d1d3b734f8aaf2afb014185b395

NC105. 二分查找II
C

int search(int* nums, int numsLen, int target ) {
    int left = 0, right = numsLen - 1;
    while (left <= right)
    {
        int mid = (left + right) / 2;
        if (nums[mid] == target)
        {
            while (nums[mid] == nums[mid-1])    //找到 nums 中的第一个出现的target
                mid--;
            return mid;
        }
        else if (nums[mid] > target)
            right = mid - 1;
        else
            left = mid + 1;
    }
    return -1;
}
全部评论
你这样不会产生数组越界吗,如果全是1的话
点赞 回复 分享
发布于 2021-09-18 10:56

相关推荐

02-07 10:52
复旦大学 Java
混子不想混:非常能理解,感觉他们就靠着入行早,打压新人一样。我这个公司也是,天天干的累死累活,然后绩效打C,合着让新人被绩效,像是年底攒棺材本一样。总是打击之后,还会让人开始自我怀疑,是不是我努力的还不够,实际上并不是,就是他们不做人,故意打压新人。
点赞 评论 收藏
分享
脑袋锈住了:你这算啥,哥们中科院中强所硕士,本科211,叫我去干分拣,时薪20
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务