04 二維陣列中的查詢

2021-09-23 22:00:20 字數 908 閱讀 8103

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

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 和當前元素的大小關係來縮小查詢區間,當前元素的查詢區間為左下角的所有元素。

從右上角開始找,行的遍歷用i,列的遍歷用j,假定目標數值為target

——若a [ i ] [ j ]的值大於target,則應該左移,即 j –

——若a [ i ] [ j ]的值小於target,則應該下移,即 i ++

class

solution

else

if(array[x]

[y]> target)

else

}return

false

;//for(int x = x_len-1; x >= 0;)}}

;

04 二維陣列中查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個高效的函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。示例 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,14,17,24 18,2...

04 二維陣列中的查詢

題目 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class testmethod system.out.println method ar...

04 二維陣列中的查詢

在乙個 n m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。示例 現有矩陣 matrix 如下 1,4,7,11,15 2,5,8,12,19 3,6,9,16,22 10,13,1...