面试笔记--二维数组的查找

来源:互联网 发布:淘宝宝贝详情图模板 编辑:程序博客网 时间:2024/06/07 20:13

在一个二维数组中,每一行、每一列都按照递增的顺序排列,写一个函数,输入这样的二维数组和一个整数,判断该数组中是否含有该整数?


解题思路:首先选取数组中右上角的数字,如果该数字等于要查找的数字,查找过程结束;大于,剔除该数字所在的列;小于,剔除该数字所在的行。如此缩小查找范围,直到找到该数字,或者查找范围为空。


代码:

int main(){int M[4][4] = { 1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15 };//二维数组的初始化int result = Find(*M, 4, 4, 9);int a = 3;}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;}

0 0
原创粉丝点击