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

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

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

  1. 只要找到重复数字的左边界。之后迭代判断即可。
class Solution {
public:
    int GetNumberOfK(vector<int> data ,int k) {

        if(!data.size()) return 0; 

        int res = 0;

        int left = 0;
        int right = data.size()-1;

        while(left<right){
            int mid = (left+right)/2;

            if(data[mid]==k){
               right = mid;
            }else if(data[mid]<k){
                left = mid + 1;
            }else{
               right = mid;
            }
        }

        for(;left< data.size();left++){

            if(data[left]==k) res++;

        }

        return res;



    }
};
剑指Offer 文章被收录于专栏

剑指offer的解析结合

全部评论

相关推荐

仁者伍敌:牛子这些人还会点一个自动回复,boss都不带回复的
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-25 19:15
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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