class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型vector 
     * @param k int整型 
     * @return int整型
     */
    int GetNumberOfK(vector<int>& nums, int k) {
        // write code here
        //找到k后 , 从左到右和从右到左把数统计 。  
        if(nums.size() == 1&& k == nums[0]){
            return  1  ; 
        }
        int i = 0 , j = nums.size()-1 ; 
        int num = 0 ; 

        while(i < j ){ // 当i小于j 。
            int mid = (i+j) /2 ; 
            if(nums[mid] > k ){
                j = mid - 1; 
            }else if( nums[mid] < k){
                i = mid +1  ; // 将数
            }else{
                int idx = mid ; 
                for(int t = idx ; nums[t] == k ; ++ t){
                    num ++ ; 
                }
                for(int tt = idx -1 ; nums[tt] == k ; --tt){
                    num++ ; 
                }
                return num ; 
            }
        }
        return 0 ; 
    }
};