1. 程式人生 > >劍指offer66題(Java)

劍指offer66題(Java)

題目描述

在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

思路

兩個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; } }