美文网首页
53-在排序数组中查找数字

53-在排序数组中查找数字

作者: 一方乌鸦 | 来源:发表于2020-05-07 09:38 被阅读0次

统计一个数字在排序数组中出现的次数。
思路二分法

public class Solution {
    int[] a;
    int k;
    public int getNumberOfK(int [] array , int k) {
        if (array == null || array.length == 0) return 0;
        this.a = array;
        this.k = k;
        return get(0, a.length - 1);
    }
    
    private int get(int i, int j) {
        if (i > j) return 0;
        if (i == j) return a[i] == k ? 1 : 0;
        int mid = (i + j) / 2;
        if (a[mid] > k) {
            return get(i, mid - 1);
        } else if (a[mid] < k) {
            return get(mid + 1, j);
        } else {
            if (a[i] == a[j] && a[i] == k) return j - i + 1;
            return get(i, mid - 1) + 1 + get(mid + 1, j);
        }
    }
}

相关文章

网友评论

      本文标题:53-在排序数组中查找数字

      本文链接:https://www.haomeiwen.com/subject/mescghtx.html