《劍指 Offer》 1 二維陣列中的查詢

2021-10-02 16:23:57 字數 776 閱讀 9480

陣列

給定乙個二維陣列,其每一行從左到右遞增排序,從上到下也是遞增排序。給定乙個數,判斷這個數是否在該二維陣列中。

例如:

consider the following matrix:

[ [1, 4, 7, 11, 15],

[2, 5, 8, 12, 19],

[3, 6, 9, 16, 22],

[10, 13, 14, 17, 24],

[18, 21, 23, 26, 30]

]given target = 5, return true.

given target = 20, return false.

要求時間複雜度 o(m + n),空間複雜度 o(1)。其中 m 為行數,n 為 列數。

該二維陣列中的乙個數,小於它的數一定在其左邊,大於它的數一定在其下邊。因此,從右上角開始查詢,就可以根據 target 和當前元素的大小關係來縮小查詢區間,當前元素的查詢區間為左下角的所有元素。

public

class

solution

int i =

0, j = col -1;

// 從右上角元素開始

while

(i < row && j >=0)

else

if(target < array[i]

[j])

else

}return

false;}

}

Python 劍指offer(1)二維陣列的查詢

題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。環境python2.7.3 解 coding utf 8 class solution array 二維...

劍指offer 1 二維陣列查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。二維陣列是有序的,比如下面的資料 1 2 3 4 5 6 7 8 9可以直接利用左下角數字開始查詢 大於 比較...

劍指offer 1 二維陣列查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數 首先是先模擬獲取隨機遞增陣列 public static int getarray int n,int m 初...