演算法 二維陣列中的查詢

2022-07-26 20:57:13 字數 1192 閱讀 8094

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

首先選取陣列中右上角的數字。如果該數字等於要查詢的數字,查詢過程結束;如果該數字大於要查詢的陣列,剔除這個數字所在的列;如果該數字小於要查詢的數字,剔除這個數字所在的行。也就是說如果要查詢的數字不在陣列的右上角,則每一次都在陣列的查詢範圍中剔除一行或者一列,這樣每一步都可以縮小查詢的範圍,直到找到要查詢的數字,或者查詢範圍為空。

如果在乙個二維陣列中找到數字7,存在則返回true,如果沒找到則返回false。

首先,8大於7,下一次只需要在8的左邊區域查詢;然後,5小於7,下一次只需要在5的下方區域查詢;按照這種規則進行查詢,如果查詢到相同的,則返回true,否則返回false。

#

-*- python3.6.6 -*-

#-*- jlutiger -*-

class

solution:

#array 二維列表

deffind(self, target, array):

#write code here

rows =len(array)

cols =len(array[0])

if rows >0 and cols >0:

row =0

col = cols-1

while rowand col>=0:

if target ==array[row][col]:

return

true

elif target

col -=1

else

: row += 1

return

false

if__name__ =='

__main__':

target = 15array = [[1,2,3],[4,5,6],[7,8,9],[10,12,13]]

answer =solution()

print(answer.find(target,array))

演算法 二維陣列中的查詢

在乙個二維陣列中 每一行都按照從左到右遞增的順序排序 每一列都按照從上到下遞增的順序排序 請完成乙個函式,輸入這樣的乙個二維陣列 和乙個整數,判斷陣列中是否含有該整數 首先選取陣列中右上角的數字 如果該數等於要查詢的數字 則查詢結果結束 如果該陣列大於查詢的數字,則剔除這個陣列所在的列 如果該數字小...

演算法 二維陣列中的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。三種方法 暴力列舉 直接遍歷二維陣列 對每行都進行二分查詢 優雅一點,選定陣列左下角或右上角,這裡選定右上角。...

刷演算法 二維陣列中的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。例如二維陣列arr 1,2,3,4 5,6,7,8 9,10,11,12 target 7,如果按照常規的查詢...