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

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

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

二分查找

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

相关推荐

小博真爱学习:真心建议别找太mini的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
07-15 00:33
江苏大学 Java
代码飞升:哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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