一點一點的進步
題目是 在:
在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列
和乙個整數,判斷陣列中是否含有該整數。
解題的思路:菜菜的我想的自然是暴力遍歷,當然那是不行的。看下面大神的思路,恍然大悟。
首先選取陣列右上角的數字,如果該數字等於要查詢的數字,則查詢結束;
如果要查詢的數字大於該數字,剔除這個數字所在的行。
如果要查詢的數字小於該數字,剔除這個數字所在的列,
這樣每一步都可以剔除一行或一列,查詢的速度比較快。
當然也可以選擇左下角的數字,思路同上。
這樣子查詢的話,每次能比較一行或者一列,效率就快了。
最重要的,自己用python 敲了一下,正好練習一下python。
# array 二維列表
def find(target, array):
#選擇右上角的數字
row = 0
maxrow = len(array) - 1
col = len(array[0]) - 1
while col>=0 and row<= maxrow:
if array[row][col] == target:
return true
elif target > array[row][col]:
row+=1
else :
target < array[row][col]
col-=1
return false
二維有序陣列查詢某值
該類陣列查詢的要點是找到起點,若如上所示是各行各列遞增,那麼可選取右上角頂點為起點,效果為 當搜尋值 稱為num 不等於該頂點值 稱為point 時,搜尋範圍可一致減小 所謂一致減小,就是範圍減小後符合同一規律 在該例中,由於遞增 若 num point,可確定該點所在行均不符合要求,可將該poin...
二維「有序」陣列查詢問題的解決
題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,誒一列都按照從上到下遞增的順序排序,請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否包含了該整數。例如下面的二維陣列就是每行 沒列都遞增排序。如果在這個陣列中查詢數字7,則返回true 找得到 如果查詢數字5,由於陣列不含該...
有序二維陣列的查詢
劍指offer原題,陣列從左到右,從上到下遞增,給定乙個數target找出這個數是否在該有序二維陣列裡面。找到的話返true,否則返回false。題目比較簡單就簡單說說思路,利用二維陣列的特性,我們把陣列看做乙個矩陣,從矩陣的右上角元素a i,j 開始找,如果a i,j target,則target...