题目描述
在一个二位数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下的递增顺序排序。请完成一个函数,
输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路
发现规律:
1.首先选取数组中右上角的数字。如果该数字等于key,查找过程结束
2.如果该数字大于key,则删除这个数字所在的列(因为该列所有元素都比key大)
3.如果该数字小于key,则删除这个数字所在的行(因为该行所有元素都比key小)
也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围中删除一行或一列,
这样每一步都可以缩小查找范围,知道找到要查找的数字,或者查找范围为空。
代码实现
|
|
补充
同样,我们可有选取左下角的数字。但是不能选择左上角和右上角,因为既不能删除行,也不能删除列。