题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路:
选取二维数组左下角元素与目标数进行判断,若相等最好,若不等,目标数大于二维数组中元素,将数组的列下表增1,反之,将数组的行下标减1。再进行判断,直到判断相等为止或相应的下表越界为止,前者表示存在,后者则是不存在。
Java代码实现:
public class Solution {
public boolean Find(int target, int [][] array) {
int line= array.length;
int row = array[0].length;
if(line==0||row==0)
return false;
int i=line-1;
int j=0;
while(array[i][j] != target){
if(array[i][j]>target){
i--;
}else{
j++;
}
if(i<0||j>row-1)
return false;
}
return true;
}
}
End