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

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

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

二分法查找

注意:
1、升序--->二分
2、先找到一个数,然后向两边找
3、注意保存mid的值,方便作为反向查找的起点
4、多次统计注意区分

代码

class Solution {
public:
    int GetNumberOfK(vector<int> data ,int k) {
        int l = 0;
        int r = data.size()-1;
        int res = 0;
        while(l<=r){
            int mid = (l+r)/2;
            if(data[mid] == k){
                int tmp_mid = mid;
                while(mid>=0 && data[mid]==k){
                    res++;
                    mid--;
                }
                while(tmp_mid<=data.size()-1 && data[tmp_mid]==k){
                    res++;
                    tmp_mid++;
                }
                return res-1;
            }
            else if(data[mid]>k){
                r = mid-1;
            }
            else{
                l = mid+1;
            }
        }

        return 0;

    }
};
全部评论

相关推荐

07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-16 21:14
中南大学 Java
白火同学:说到底就是无实习的秋招、有实习的春招,哪个更难找到工作嘛。 现在离秋招还有两个半月时间,你现在可以一边背八股刷算法,一边投实习简历,看能不能拿到一份7-9月的实习。你这9本和技术栈找实习是够的,那你实习过程中继续优化简历。9月一边实习一边继续投秋招简历。
无实习如何秋招上岸
点赞 评论 收藏
分享
05-29 20:34
门头沟学院 C++
KarlAllen:得做好直接春招的准备。学历差的话,一是面试要求会比学历好的严格不少,二是就算面试通过了也会被排序。总之暑期和秋招对于学历差的就是及其不友好
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 17:10
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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