一、題目如下:
二、解答思路:
從二維陣列的右上角的元素開始判斷,因為此元素是它所在行的最大數,是它所在的列的最小數。如果它等於要查詢的數字,則查詢過程結束。如果它大於要查詢的數字,則可以排除它所在的列。如果它小於要查詢的數字,則可排除它所在的行。這樣如果要查詢的數字不在陣列的右上角,則每次判斷都可以排除一行或一列以縮小查詢範圍,直到找到要查詢的數字,或者查詢範圍為空。
下圖是查詢數字7的步驟:
三、python**
輸出:def
find
(array,num):
row = 0
col = len(array[0])-1
if array == none:
return
false
while rowand col >=0:
if array[row][col] == num:
return
true
elif array[row][col] > num:
col -=1
else:
row +=1
return
false
m = [[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]
print find(m,2)
true
劍指Offer 陣列 (3)
知識點 資料結構 陣列 題目描述 輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。1 自己寫的 借助了其他的記憶體空間 奇數和奇數 偶數和偶數相對位置不變 指的是奇數之間的先後順序...
劍指offer 陣列的旋轉(1)Python實現
題目 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。考點 二分查詢 鏈結 一 鏈結二。分析 旋轉之後的陣列實際上可以劃分...
劍指offer 斐波那契數列 python 實現
題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 判斷n是否為0,1,2,對應特殊值 否則返回第n項的結果。注 迴圈可通過,但遞迴不行。coding utf 8 class solution def fibonacci self,...