劍指Offer 11 旋轉陣列的最小數字

2021-09-23 10:23:10 字數 649 閱讀 3147

題目:把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序陣列的乙個旋轉,輸出旋轉陣列的最小元素,例如,陣列為的乙個旋轉,該陣列的最小值為1.

思路:設定兩個指標。利用二分查詢法。第乙個指標指向第乙個元素,第二個指向最後乙個元素。找到陣列的中間元素,如果中間的元素大於第乙個元素,此時陣列中最小的元素應該位於中間元素的後面,此時令start=mid;如果中間的元素小於最後乙個元素,此時陣列的最小元素應該位於中間元素或中間元素的前面。此時令end=mid。 最終第乙個指標指向前面子陣列的最後乙個元素,第二個指標指向後面子陣列的第乙個元素,第二個指標指向的剛好是最小的元素,迴圈結束。

**:

class solution:

def minnumberinrotatearray(self, rotatearray):

# write code here

start=0;

end=len(rotatearray)-1;

while start=rotatearray[start] and startstart=mid

elif rotatearray[mid]<=rotatearray[end] and startend=mid

return rotatearray[mid]

劍指offer 11旋轉陣列中最小的數字

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。第一種方法 從頭開始遍歷,當遇到不滿足非遞減排序規律的那個數時,那就是旋...

劍指offer11 旋轉陣列的最小數字

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個公升序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。陣列可能包含重複項。注意 陣列內所含元素非負,若陣列大小為0,請返回 1。樣例 輸入 nums 2,2,2,0,1 輸出 0思路 首先判...

《劍指Offer》11 旋轉陣列的最小數字

牛客網 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。二分查詢 一定要先判斷h,如果先判斷l則不會通過,因為陣列是從左向右幾乎遞增的。判斷中間值大於l處時,最小值可能在右邊,也可能在左邊 例如 4,1,2,4,4,4,4...