剑指Offer:数字在排序数组中出现的次数

题目描述

统计一个数字在排序数组中出现的次数。

示例

解题思路

public class Solution {
    public int GetNumberOfK(int[] nums, int K) {
        int first = binarySearch(nums, K);
        int last = binarySearch(nums, K + 1);
        return (first == nums.length || nums[first] != K) ? 0 : last - first;
    }

    private int binarySearch(int[] nums, int K) {
        int l = 0, h = nums.length;
        while (l < h) {
            int m = l + (h - l) / 2;
            if (nums[m] >= K)
                h = m;
            else
                l = m + 1;
        }
        return l;
    }
}
本站所有文章均来自互联网,如有侵权,请联系站长删除。极客文库 » 剑指Offer:数字在排序数组中出现的次数
分享到:
赞(0)

评论抢沙发

评论前必须登录!