11題旋轉陣列的最小數字

2021-10-01 22:59:48 字數 722 閱讀 5428

題目描述:

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。

輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。

例如陣列為的乙個旋轉,該陣列的最小值為1。

note:給出的所有元素都大於0,若陣列大小為0,請返回0。

思路:採用二分查詢法可以降低複雜度,但是要考慮特別情況,例如旋轉的個數為0,那麼最小值就是陣列的第一位,例如最後一位和第一位相同,且中間mid也相同,這個時候只能使用順序遍歷的方法,例如

2,2,2,1,2,2,2,2,2,2

**:

class

solution

}return result;

}int

minnumbercore

(vector<

int>

&roatearray,

int begin,

int end,

int flag)

else

if(roatearray[mid]

>= flag)

else

return

minnumbercore

(roatearray, begin, mid, flag);}

intminnumberinrotatearray

(vector<

int> rotatearray)

};

11 旋轉陣列的最小數字

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。我的 二分法 class min defsolution self,nums a nums 0 b nums 1 iflen num...

11 旋轉陣列的最小數字

二分法搜尋方法 include using namespace std intmin int numbers,int length int index1 0 int index2 length 1 int indexmid index1 while numbers index1 numbers in...

11 旋轉陣列的最小數字

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如,陣列 3,4,5,1,2 為 1,2,3,4,5 的乙個旋轉,該陣列的最小值為1。輸入 3,4,5,1,2 輸出 1 輸入 2,2,2,0,1 輸出 0 此題很容易想到順...