/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param target int整型 
 * @param array int整型二维数组 
 * @param arrayRowLen int array数组行数
 * @param arrayColLen int* array数组列数
 * @return bool布尔型
 */
bool Find(int target, int** array, int arrayRowLen, int* arrayColLen ) {
    // write code here;
    if(array==NULL) return false;
    int k=0;
  //行数进行二分查找会不严谨(本人拙见,可能会不正确,大佬发现漏洞请务必指出来QwQ)
  //例如{7{1,2,3},{2,5,7},{3,6,9},{8,10,11}}它会锁定到第三行,最后找不到7
    for(int i=0;i<arrayRowLen;i++)//第一层循环遍历每一行
    {
        if(array[i][*arrayColLen-1]>=target&&array[i][0]<=target)
        {
            int l=0;
            int r=*arrayColLen-1;
            //锁定行数后进行二分查找列
            while(l<=r)
            {
                int mid=(l+r)/2;
                if(array[i][mid]<=target) l=mid+1;
                else r=mid-1;
            }
            if(array[i][l-1]==target) return true;
        }
        if(target<array[i][0]) return false;
    }
    return false;
}