public boolean Find(int target, int [][] array) {
        //遍历二维数组 取出每一个一位数组后进行二分法查找
        if(array == null || array.length == 0){
            return false;
        }
        for(int i = 0;i< array.length ;i++){
            int[] item = array[i];
            if(has(item,target)){
                return true;
            }
        }
        return false;
    }
    
    public boolean has(int[] nums,int target){
        if(nums == null || nums.length == 0){
            return false;
        }
        int beginIndex = 0;
        int endIndex = nums.length - 1;
        while(beginIndex < endIndex){
            int middleIndex = beginIndex + (endIndex - beginIndex) / 2;
            int value = nums[middleIndex];
            if(value == target){
                return true;
            }
            if(value > target){
                endIndex = middleIndex;
            }
            if(value < target){
                beginIndex = middleIndex + 1;
            }
        }
        if(beginIndex == endIndex && nums[beginIndex] == target){
            return true;
        }
        return false;
    }
}