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

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

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

看到大多数都是二分查找上下界,开始我的想法是:二分查找到某一个数等于k,然后从这个数开始分别往左和往右统计有多少个k,总是超时,嗯?好像没什么大问题啊?

于是换了一个思路,分别从头和从尾开始查找等于k的上下界,竟然过了。。。时间复杂度为O(n-m),空间复杂度O(1)。
public:
    int GetNumberOfK(vectordata ,int k) {
        int l = 0;
        int r = data.size()-1;
        while(l<=r) { if(data[l]<k>k){
                l++;
                r--;
            }
            else if(data[l]<k>k && data[l]>=k)
                r--;
            else break;
        }
        if(l>r) return 0;
        return r-l+1;
    }</k></k>


全部评论

相关推荐

06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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