题目说明:

二维数组特点:

每行从左到右递增有序

每列从上到下递增有序


如: 

1   2   8   9

2   4   9   12

4   7  10  13

6   8  11  15


解法一:

//从右上角开始查找 bool FindNum(int *matrix,int rows,int columns,int number) {     bool found = false;      if (matrix != NULL && rows > 0 && columns > 0)  //首先确定参数合法     {         int row = 0;         int col = columns - 1;          while (row < rows && col >= 0)         {             if (matrix[row * columns + col] == number)             {                 found = true;                 break;             }             else if (matrix[row * columns + col] > number)                 -- col;	             else                 ++ row;         }     }      return found; }




解法二:

//从左下角开始查找: bool FindNum(int *matrix,int rows,int columns,int number) {     bool found = false;      if (matrix != NULL && rows > 0 && columns > 0)     {         int row = rows - 1;         int col = 0;          while (row >= 0 && col < columns)         {             if (matrix[row * columns + col] == number)             {                 found = true;                 break;             }             else if (matrix[row * columns + col] > number)                 -- row;             else                 ++ col;         }     }      return found; }