题解 | #二分查找-II#

二分查找-II

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

public int search (int[] nums, int target) {
        // write code here
        if (nums.length == 0) {
            return -1;
        }

        int l = 0;
        int r = nums.length;

        int mid = 0;

        while (l <= r) {

            mid = (l + r) / 2;

            if (nums[mid] < target) {
                l = mid + 1;
            } else if (nums[mid] > target){
                r = mid - 1;
            } else {
                while (mid > 0 && nums[mid] == nums[mid - 1]) {
                    mid--;
                }
                return mid;
            }
        }

        return -1;
    }
全部评论

相关推荐

头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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