劍指offer11二維陣列中的查詢

2021-10-05 19:31:25 字數 1339 閱讀 8168

題目描述

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

暴力法

**如下:

# -*- coding:utf-8 -*-

class

solution

:# array 二維列表

deffind

(self, target, array)

:# write code here

iflen

(array)==0

:return

false

else

: row =

len(array)

col =

len(array[0]

)for i in

range

(row)

:for j in

range

(col)

:if array[i]

[j]==target:

return

true

這不是普通的二維列表,大小關係不是白給的,要利用大小關係

思路:從左下角開始查詢,左下角的元素向右查詢是變大,向上查詢是變小;同理,從右上角的元素開始查詢也可。直至查詢到邊界,如果還沒找到返回false

# -*- coding:utf-8 -*-

class

solution

:# array 二維列表

deffind

(self, target, array)

:# write code here

iflen

(array)==0

:return

false

else

: row =

len(array)

col =

len(array[0]

) i,j = row-1,

0while

((i>=0)

and(j<=col-1)

):if array[i]

[j]==target:

return

true

elif array[i]

[j]>target:

i = i-

1elif array[i]

[j]j = j+

1return

false

劍指offer 二維陣列

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

劍指offer 二維陣列中查詢

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

劍指offer 二維陣列中查詢

從今天開始每天一題,除了節假日。在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。class solution return false class solut...