劍指offer 面試題3—二維數組中找數

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

基本思想:
首先選取數組中右上角的數字。如果等於要找的數字,結束。如果大於要找的數字,剔除這個數字所在的列;如果小於要找的數字,剔除這個數字所在的行。

public static boolean find(int[][] array, int number) {
        if (array == null || array.length == 0)
            return false;

        int column = array[0].length;
        int row = array.length;

        int i = 0, j = column - 1;

        while (i < row && j > 0) {
            if (array[i][j] == number) {
                return true;
            } else if (array[i][j] > number) {
                j--;
                continue;
            } else if (array[i][j] < number) {
                i++;
                continue;
            }
        }
        return false;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章