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

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

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

    public int GetNumberOfK(int [] array, int k) {
        if(array.length==0){
            return 0;
        }
        int count = 0;  //统计个数
        int left = 0;  //左边的下标
        int right = array.length - 1; //右边的下标
        while (left<array.length) {//从零开始遍历,直到找到等于k的下标
            if(array[left]==k){
                break;
            }else{
                left++;
            }
        }
        while(right>=0){//从最大值开始遍历,直到找到等于k的下标
            if(array[right]==k){
                break;
            }else{
                right--;
            }
        }
        if(left>=array.length||right<0){//如果没有找到就输出0,否则就输出左右下标的差值加1
            return 0;
        }else{
            return right-left+1;
        }
    }
}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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