【leetcode】二维数组中的查找

bool findNumberIn2DArray(int** matrix, int matrixSize, int* matrixColSize, int target){
    if (matrixSize == 0 || *matrixColSize == 0)
    {
        return false;
    }
    int row = matrixSize;
    int col = *matrixColSize;
    int maxcol = -1;
    int maxrow = -1;
    int i,j;


    for (i=0; i<col; i++)
    {
        if (matrix[0][i]>target)
        {
            maxcol = i;  //找出刚刚比目标值大的列,缩小范围
            break;
        }
    }
    if (maxcol == -1)
        maxcol = col;
    for (i=0; i<row; i++)
    {
        if (matrix[i][0]>target)
        {
            maxrow = i;     //找出刚刚比目标值大的行,缩小范围
            break;
        }
    }
    if (maxrow == -1)
        maxrow = row;

    for (i=0; i<maxrow; i++) //穷举遍历
    {
        for (j=0; j<maxcol; j++)
        {
            if (matrix[i][j] == target)
            {
                return true;
            }
        }
    }

    return false;
}
原文地址:https://www.cnblogs.com/ganxiang/p/13550177.html