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

来源:互联网 发布:linux需掌握的技能 编辑:程序博客网 时间:2024/06/06 07:17

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

用两个二分,第一个二分找到这个数字在数组中的起点,第二个找到对应的终点,直接减去就行

public class Solution {    public int GetNumberOfK(int [] array , int k) {        int left = 0 ;         int right = array.length-1 ;         while(left <= right){            int mid = (left+right) >> 1 ;              if(array[mid] >= k){                right= mid-1 ;             }else{                left = mid+1 ;             }        }        int l = 0 ;         int r = array.length-1 ;         while(l <=  r){            int m = (l+r) >> 1 ;             if(array[m] <= k){                l = m + 1 ;             }else{                r = m - 1 ;             }        }        return l - left ;       }}
0 0
原创粉丝点击