楊氏矩陣查詢

2022-04-10 18:36:32 字數 1363 閱讀 1468

在乙個m行n列二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維

陣列和乙個整數,判斷陣列中是否含有該整數。

使用step-wise線性搜尋。

```python

defget_value(l, r, c):

return

l[r][c]

deffind(l, x):

m = len(l) - 1n = len(l[0]) - 1r =0

c =n

while c >= 0 and r <=m:

value =get_value(l, r, c)

if value ==x:

return

true

elif value >x:

c = c - 1

elif value r = r + 1

return

false

```

例如:

pds=pd.dataframe([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25],[26,27,28,29,30],[31,32,33,34,35]])

print

(pds)

#print(len(pds.index))

#print(len(pds.columns))

#找24

defget_value(pds,c,i):

return

pds[c][i]

#def find(n,pds):

#c=len(pds.columns)-1

#i=len(pds.index)-1

#cc=0

#ii=i

#while ii>=0 and cc<=c:

#if n==get_value(pds,cc,ii):

#return true

#if n#

ii-=1

#if n>get_value(pds,cc,ii):

#cc+=1

deffind(n,pds):

c=len(pds.columns)-1i=len(pds.index)-1cc=c

ii=0

while ii<=i and cc>=0:

if n==get_value(pds,cc,ii):

return

true

if ncc-=1

if n>get_value(pds,cc,ii):

ii+=1

print(find(24,pds))

楊氏矩陣查詢

題目為 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。例如下面的二維陣列就是每行 每列都遞增排序,如果在這個陣列中查詢數字6,則返回true 如果查詢數字10,由於陣列不含有該數字...

楊氏矩陣查詢

方案一 時間複雜度o m n 原理 從右上角開始 左下角相同 如果arr i j t,就向左查詢,如果arr i j 2013.7.23 0423 function 楊氏矩陣查詢 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個...

楊氏矩陣查詢

題目描述 楊氏矩陣,即在乙個二維陣列中,每一行都按照從左到右嚴格遞增的順序排序,每一列都按照從上到下嚴格遞增的順序排序。請完成乙個函式,輸入這樣的乙個 n n的二維陣列和 m個整數,判斷陣列中是否含有上述 m個整數。你能解決這個問題嗎?輸入格式 可能有多個測試輸入,第一行給出總共的測試輸入的個數。對...