在一个二维数组中,每一行都按从左到右递增的顺序排列,给定一个整数,查找数组中书否有和该数字相等的数字;
思路:从右上角开始比较,逐次向右下角靠近。
代码如下:
bool Find(int* matrix,int rows,int columns,int number)
{
bool found=false;
if(matrix!=NULL&&rows>0&&columns>=0)
{
int row=0;
int column=columns-1;
while(row<rows&&column>=0)
{
if(matrix[row*columns+column]==number)
{
found=true;
break;
}
else if(matrix[row*columns+column]>number)
column--;
else
row++;
}
}
return found;
}