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

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

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

二分法查找,

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        if(array==null ||array.length==0) return 0;
        if(k<array[0]||k>array[array.length-1]) return 0;
       int left=0,right=array.length-1;
        int count=0,mid=0;
        while(left<=right){
            mid =(left+right)/2;
            if(array[mid]>k) right=mid-1;
            else if(array[mid]<k) left=mid+1;
            else{//相等
                count++;
                break;
            }
        }
        left=mid-1;
        right=mid+1;
        while(left>=0 && array[left]==k ) {
            count++;
            left--;
        }
        while( right<array.length && array[right]==k) {
            count++;
            right++;
        }
        return count;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:46
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 14:00
林子大了什么鸟都有啊,我觉得我说的已经很客气了,阴阳谁呢
牛客62656195...:应该不是阴阳吧?你第一次注册的时候boss就说你是牛人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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