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

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

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

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        // 左闭右闭
        int left = 0;
        int right = array.length - 1;
        // 因为是闭区间 不加等于号会漏掉一个元素
        while (left <= right){
            int mid = left + (right - left)/2;
            if(array[mid] == k){
                while (array[left] != k || array[right] != k){
                    if (array[left] != k) left ++;
                    else right --;
                }
                return right - left + 1;

            }else if(array[mid] < k){
                left = mid + 1;
            }else{
                right = mid - 1;
            }
        }
        return 0;
    }
}
全部评论

相关推荐

06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
07-14 13:47
门头沟学院 Java
Lynn012:你评估好自己的位置了吗《顶尖应届》
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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