题解 | #数字在升序数组中出现的次数#

数字在升序数组中出现的次数

http://www.nowcoder.com/practice/70610bf967994b22bb1c26f9ae901fa2

java整数二分两个模板
1.将集合划分为[l,mid][mid + 1,r]
2.将集合划分为[l,mid - 1][mid,r]

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
       if(array.length == 0) return 0;
       int l = 0, r = array.length - 1;
       while(l < r){
           int mid = l + r >> 1;
           if(array[mid] >= k) r = mid;
           else l = mid + 1;
       }
        int p = l;
        if(array[l] != k) return 0;
        l = 0;
        r = array.length - 1;
        while(l < r){
            int mid = l + r + 1 >> 1;
            if(array[mid] <= k) l = mid;
            else r = mid - 1;
        }
        return l - p + 1;
    }
}
全部评论

相关推荐

03-29 14:19
门头沟学院 Java
你背过凌晨4点的八股文么:加油同学,人生的容错率很高,只是一个暑期罢了,后面还有很多机会!
点赞 评论 收藏
分享
没有offer的呆呆:薪资有的时候也能说明一些问题,太少了活不活得下去是一方面,感觉学习也有限
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务