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

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

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

1

认识到上下界

alt

2

copy version

class Solution {
public:
    int GetNumberOfK(vector<int> nums ,int target) {
        int lbound = 0, rbound = 0;
        // 寻找xia界
        int l = 0, r = nums.size();
        while (l < r) {
            int mid = l + (r - l) / 2;
            if (nums[mid] < target) {
                l = mid + 1;
            }
            else {
                r = mid;
            }
        }
        lbound = l;
        
        // 寻找shang界
        l = 0, r = nums.size();
        while (l < r) {
            int mid = l + (r - l) / 2;
            if (nums[mid] <= target) {
                l = mid + 1;
            }
            else {
                r = mid;
            }
        }
        rbound = r;
        return rbound - lbound;
    }
};
全部评论
老题新解: 只要一个下边界(会不会上边界也可以?), 从入参上面考虑(+0.5, -0.5 ),也可以求出结果来, 参考 https://blog.nowcoder.net/n/8b9dfb48adea4a5ab459bf72efdf8921
点赞 回复
分享
发布于 2022-11-21 17:17 四川

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务