1. 程式人生 > >在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。

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

public class Solution {
    public boolean Find(int target, int [][] array) {
        //判斷陣列是否為空
        if(array.length==0 || array[0].length==0){
            return false;
        }
        int row_count=array.length;
        int column_count=array[0].length;
        /*
        解題思路:有序矩陣整數從小到大排序,從index左下角開始比較,
        target>左下角的值時,遍歷列值索引++;
        target<左下角的值時,遍歷行值索引--;
        */
        for(int i=row_count-1,j=0;i>=0&&j<row_count;){
            if(target==array[i][j]){
                return true;
            }else if(target>array[i][j]){
                j++;
                continue;
            }else if(target<array[i][j]){
                i--;
                continue;
            }
        }
       return false;
    }
}