1. 程式人生 > >劍指offer學習筆記

劍指offer學習筆記

考點:陣列

(二)

題目描述

把一個數組最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入一個非遞減排序的陣列的一個旋轉,輸出旋轉陣列的最小元素。 例如陣列{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該陣列的最小值為1。 NOTE:給出的所有元素都大於0,若陣列大小為0,請返回0。

分析:

可以使用二分查詢。旋轉陣列的首元素肯定不小於旋轉陣列的尾元素。可以設定中間點,如果中間點大於首元素,說明最小數字在中間點後面的一半,如果中間點小於尾元素,說明最小數字在中間點前面的一半,依次迴圈。

實現:


也可以使用BF演算法或者直接用min()方法