二维数组中查找
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解决思路
二维数组中最右边的数是一行中最大的数,是一列中最小的数。根据这个规律,如果要查找的数跟最右边的数相等,则查找成功;如果要查找的数比最右边的数小,那么剔除最右边数所在的列;如果要查找的数比最右边的数大,那么剔除最右边数所在的行。
代码实现
1 | /** |
测试结果
1 | true |
补充
java中获取二维数组的行数和列数
二维数组其实是由一维数组组成,比如1
2
3
4
5int[][] arr = {
{2,3,4},
{4,5,6},
{7,8,9}
};
int rows = arr.length;//行数
int columns = arr[0].length;//列数
这就像从数据库中查出来的数据,都是二维数组,length就是行数,列数是具体到其中的一维里面在求length。