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

来源:互联网 发布:微信开源mars源码分析 编辑:程序博客网 时间:2024/06/06 15:16


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


public class Solution {    public int GetNumberOfK(int[] a, int k) {        int index = binarySearch(a, k);        if (index == -1) return 0;        int cnt = 0;        int left = index;        int right = index + 1;        while (left >= 0 && a[left--] == a[index])            cnt++;        while (right < a.length && a[right++] == a[index])            cnt++;        return cnt;    }    public int binarySearch(int[] a, int k) {        int low = 0;        int high = a.length - 1;        while (low <= high) {            int mid = (low + high) >>> 1;            int midVal = a[mid];            if (midVal < k)                 low = mid + 1;            else if (midVal > k)                high = mid - 1;            else                return mid;        }        return -1;    }}


阅读全文
0 0
原创粉丝点击