04_二維數組中的查找

題目:在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 {{1, 2, 8, 9}, {2, 3, 9, 12}, {4, 7, 10, 13}}
public class TestMethod {

    public static void main(String[] args) {
        int[][] array = {{1, 2, 8, 9}, {2, 3, 9, 12}, {4, 7, 10, 13}};
        System.out.println(method(array, 0));
    }

    private static boolean method(int[][] arr, int target) {
        int row = 0;
        int column = arr.length - 1;
        while (row < arr.length && column >= 0) {
            if (arr[row][column] == target) {
                return true;
            } else if (arr[row][column] > target) {
                column--;
            } else {
                row++;
            }
        }
        return false;
    }
}
解題思路
  • 二維數組在內存空間佔用連續的空間,且從左至右從上至下按遞增排序。
複雜度分析
  • 時間複雜度:O(n)
  • 空間複雜度:O(1)
發佈了27 篇原創文章 · 獲贊 6 · 訪問量 3062
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章