欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数字在排序数组中出现的次数(两次二分)

程序员文章站 2024-03-20 12:12:46
...

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

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        int l=0,r=array.length-1,mid;
        int L,R;
        while(l<=r){
            mid=(l+r)>>1;
            if(array[mid]<k) l=mid+1;
            else r=mid-1;
        }
        if(l>=array.length||array[l]!=k) return 0;
        L=l;
        l=0;
        r=array.length-1;
        while(l<=r){
            mid=(l+r)>>1;
            if(array[mid]>k) r=mid-1;
            else l=mid+1;
        }
        if(r<0||array[r]!=k) return 0;
        R=r;
        return R-L+1;
    }
}
相关标签: 剑指offer