劍指offer66題(Java)
阿新 • • 發佈:2018-12-20
題目描述
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
思路
兩個for迴圈遍歷
但是提示
發現原因,沒有考慮陣列為空時的情況。 於是加上
if(rows==0) { return false; } 報錯和之前一樣
後來百度發現,判斷二維陣列是否為空有三種情況
然後就通過了。
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;
}
}