9、数字在排序数组中出现的次数《剑指offer》

0

统计一个数字在排序数组中出现的次数。
思路1:找出数字第一次出现的位置,然后往后数
思路2:找出数字最后一次出现的位置,和第一次出现的位置然后相减

    public int GetNumberOfK(int [] array , int k) {
            if(array==null||array.length==0){
                        return 0;
            }
        int start=0,end=array.length-1,mid=0;
        //找到k出现的第一个位置
        while(start<end){
            mid=(start+end)/2;
            if(array[mid]>k){
                        end=mid-1;
            }else if(array[mid]<k){
                        start=mid+1;
            }else {
                                                end=mid;
                                    }
        }
        if(array[start]!=k){
            return 0;
        }
        int result=0;
        while(start<array.length&&array[start++]==k){
            result++;
        }
        return result;
    }