剑指offer:二维数组的查找
题目:在一个二维数组中,每一行都按照从左到右的递增顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。
![]()
![]()
分析:数组如下所示

方式大致如下:

选择的应该是右上角或者左下角。
// 二维数组matrix中,每一行都从左到右递增排序,// 每一列都从上到下递增排序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;}
浙公网安备 33010602011771号