思路:二维数组,每一行每一列均按从小到大有序排列。选取左下角元素,从这点开始,需要查找的元素比当前点小则上移,大则右移。</p><p>代码如下,用一个递归实现:
public class Solution {
public boolean Find(int [][] array,int target) {
if(array[0].length==0){
return false;
}else{
int x = array.length-1;
int y = 0;
return checkIsExist(array, x, y, target);
}
}
public boolean checkIsExist(int [][] array,int x,int y,int target){
if(target>array[x][y]){
if(y==array[1].length-1){
return false;
}else{
return checkIsExist(array,x,y+1,target);
}
}else if(target<array[x][y]){
if(x==0){
return false;
}else{
return checkIsExist(array,x-1,y,target);
}
}else{
return true;
}
}
}