题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路
两个for循环遍历
但是提示
发现原因,没有考虑数组为空时的情况。
于是加上
if(rows==0)
{
return false;
}
报错和之前一样
后来百度发现,判断二维数组是否为空有三种情况
链接: https://www.cnblogs.com/daneres/p/6507535.html.
然后就通过了。
public class Solution {
public boolean Find(int target, int [][] array) {
int i=0;
int j=0;
int sum=0;
int rows = array.length;//行数
int columns = array[0].length;//列数\
boolean a=false;
if(rows==0)
{
return false;
}
if(array==null||array.length==0||(array.length==1&&array[0].length==0))
{
return false;
}
for(i=0;i<rows;i++)
{
if(array[i][0]>target||array[i][columns-1]<target)
{
continue;
}
for(j=0;j<columns;j++)
{
if(array[i][j]==target)
{
sum=1;
break;
}
}
if(sum==1)
{
break;
}
}
if(sum==1)
{
a=true;
}
return a;
}
}