二维数组中的查找
描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
1:题意中给出二维数组是左右,上下递增.动态维护a[i][j],当i=0,j=a[0].length(即位于第一行最后一列的数),与整数target进行比较,target大于a[i][j]时,进行i++;小于target是进行j–操作,相等则返回true,
AC代码如下:
public boolean Find(int [][] array,int target) {
if(array==null)
return false;
int raw=array.length;//array中行的个数
int col=array[0].length;//array中列的个数
for(int i=0,j=col-1;i<raw&&j>=0;)
{
if(array[i][j]>target)
j--;
else if(array[i][j]<target)
i++;
else
return true;
}
return false;
}