劍指Offer系列04 二維陣列中的查詢

2021-10-07 21:51:14 字數 1047 閱讀 3569

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

示例:現有矩陣 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]

]

給定 target = 5,返回 true。

給定 target = 20,返回 false。

限制:0 <= n <= 1000

python

# 思路:

# 注意二維陣列的內在規律(每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序),尋找標誌數:左下角與右上角數

# 複雜度:

# o(n+m)

class

solution

:def

findnumberin2darray

(self, matrix: list[list[

int]

], target:

int)

->

bool

: i, j =

len(matrix)-1

,0while i>=

0and j<

len(matrix[0]

):if matrix[i]

[j]> target: i-=

1# 跳轉上一行

elif matrix[i]

[j]< target: j+=

1# 跳轉下一列

else

:return

true

return

false

c++
class

solution

};

劍指offer04 二維陣列查詢

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

劍指offer 二維陣列

題目 在乙個二維陣列中每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。完成乙個函式,輸入這樣的陣列和乙個整數,判斷陣列中是否含有該整數。思路 由於該二維陣列從左到右,從上到下均為順序遞增的。因此右下角與左上角的數字均大於或小於其周圍數字,如果選擇改組作為起始點,則無法確定下一...

劍指offer 04 二維陣列的查詢

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