牛客網 旋轉陣列的最小值

2021-08-27 14:18:06 字數 999 閱讀 3352

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。 輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。 例如陣列為的乙個旋轉,該陣列的最小值為1。 note:給出的所有元素都大於0,若陣列大小為0,請返回0。

第一種思路是提交了的**中的最上邊的幾種解法

第二種思路來自於一本書,總體是採用的二分的思想,考慮二分之後最小值可能所處的位置

class solution:

def minnumberinrotatearray(self, rotatearray):

# write code here

pre = -7e20

for num in rotatearray:

if num < pre:

return num

pre = num

if len(rotatearray) == 0:

return 0

return rotatearray[0]

# 二分的思路

def minnumberinrotatearray2(self, rotatearray):

low=0

high=len(rotatearray)-1

mid=0

while lowrotatearray[mid]):

high=mid

continue

if rotatearray[mid]>rotatearray[high]:

low=mid

continue

while lowif rotatearray[low]==rotatearray[mid]:

low+=1

elif rotatearray[low]return rotatearray[low]

else:

high=mid

break

return min(rotatearray[low],rotatearray[high])

旋轉陣列的最小值

題目 把乙個陣列的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小值。例如陣列為的乙個旋轉,該陣列的最小值為1。解析 1 我們可以用順序查詢的方法找到陣列中的最小值,但是這個方法沒有用到旋轉陣列區域性有序的特點。2 和二分查詢法一樣,我們用兩個指標...

旋轉陣列的最小值

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非遞減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。思路 類似二分查詢,不斷縮小查詢範圍 int minnumberinro...

旋轉陣列的最小值

題目描述 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個遞增排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入的第一行為乙個整數n 1 n 1000000 代表旋轉陣列的元素個數。...