这题思路不难,但是关于二维数组的边界问题,差点把我整崩溃~~~~
题目描述:
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
这题的思路就是找一个中间值,让他在数组查找就行了,左下角的值和右上角的值都行,我选的是左下角的值:
public static boolean Find(int target, int [][] array) {
if(array.length==0){
return false;
}
if(array[0].length==0){
return false;
}
int i=array.length-1;
System.out.println(i);
int j=0;
int num=array[i][j];
while(num!=target){
if(target>num){
if(j<array[0].length-1){
j++;
num=array[i][j];
}
else {
return false;
}
}
if(target<num){
if(i>=1){
i--;
num=array[i][j];
}
else{
return false;
}
}
}
return true;
}