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

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

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

class Solution {
public:
    int GetNumberOfK(vector<int> data ,int k) {
        if (data.size() == 0) return 0;
        int l = 0, r = data.size() - 1, mid = 0;
        int left = 0, right = 0;
        while (l < r) {
            mid = l + r >> 1;
            if (data[mid] < k) {
                l = mid + 1;
            } else {
                r = mid;
            }
        }
        if (data[l] != k) return 0;
        left = l;
        l = 0, r = data.size() - 1;
        while (l < r) {
            mid = l + r + 1 >> 1;
            if (data[mid] <= k) {
                l = mid;
            } else {
                r = mid - 1;
            }
        }
        return l - left + 1;
    }
};
全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务