1、思路概述:
题目:有这样一个二维数组,它的行从左到右皆递增,列从上到下也递增,现查找这样一个目标数字,若二维数组中有此数字则返回true,没有就返回false。
**思路:**首先我们可以建立一个这样的二维数组,从右上或左下开始查找,这样一次就可以排除一个行列,比直接使用二分查找要更加方便,
2、代码实现:
public static boolean find(int[][] array,int target) {
if(array==null){
return false;
}
int row=0;
int colm=array[0].length-1;//从右上角开始进行
while (row<array.length&&colm>=0){
if(array[row][colm]==target){
return true;
}else if(array[row][colm]>target){
colm--;
}else {
row++;
}
}
return false;
}
public static void main(String[] args) {
int[][] arr={{1,2,3},{4,5,6},{7,8,9}};
int taget=1;
System.out.println(find(arr,1));
}