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;
}