《剑值Offer》第一课
每天一道题,前进一小步。
二维数组中的查找
题目:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
1.题目主要考察的是二维数组的遍历问题,想想数组遍历的常用方法有哪些?
2.最简单的应该是for循环,此题就采用for循环来进行解答
3.二维数组,采用两个for循环分别遍历,外层for取行,内层for取列
3.然后定义一个boolean类型的基本类型,初始值为false
4.进行判断,当数组中有数据与整数相等,则将boolean类型变成true返回,反之直接返回初始值
5.话不多说,直接上代码…
代码:
/*
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,
每一列都按照从上到下递增的顺序排序。
请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
*/
public class DoubleArrayDemo01 {
public boolean Find(int target, int [][] array) {
boolean a = false;//定义初始布尔值
for (int i = 0; i < array.length; i++) {
//外层循环——行
for (int j = 0;j<array.length;j++){
//内层循环——列
if(array[i][j]==target)//判断相等
a = true;//若相等,赋值为true
}
}
return a;//返回布尔值
}
}
结语:本题主要考察二维数组的遍历,方法千千万,本人还是倾向使用for循环遍历。