1.题目:
统计一个数字在升序数组中出现的次数。
2.思路:
方法一: 暴力解法;遍历完后计数输出

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        int count=0;
       for(int i=0;i<array.length;i++){
           if(array[i]==k) count++;
       }
        return count;
    }
}

方法二:先用二分法缩小遍历范围

public class Solution {
    public int GetNumberOfK(int [] array , int k) {
        int left=0;
        int right=array.length-1;
        int count=0;
        while(left<right){
            int mid=(left+right)/2;
            if(array[mid]<k){//k在右边,下边界增大
                left=mid+1;
            }else if(array[mid]>k){//k在左边,上边界减小
                right=right-1;
            }else{//找到K值,说明一定此时的边界的范围内
                break;
            }
        }
        for(int i=left;i<=right;i++){
            if(array[i]==k){
                count++;
            }
        }
        return count;
      }
    }