牛客66道程式設計題 旋轉陣列的最小數字

2021-09-26 15:11:30 字數 1676 閱讀 8174

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

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

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

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

class

solution

:def

minnumberinrotatearray

(self, rotatearray)

:# write code here

#首先判斷rotatearray是否有元素

iflen

(rotatearray)==0

:return

none

iflen

(rotatearray)==1

:return rotatearray[0]

else

: mm=

min(rotatearray)

#找到rotatearray中的最小值

d=rotatearray.index(mm)

#找到最小值的位置

return rotatearray[d]

#返回最小值

乙個常規的二分查詢法:

def

twosort

(array,key)

: left=

0 right=

len(array)-1

while left<=right:

mid =

(left + right)

>>

1if array[mid]

left=mid+

1elif array[mid]

>key:

right=mid-

1else

:return mid

if __name__ ==

'__main__'

: array=[1

,2,3

,4,5

,6,7

,8] mid=twosort(array,1)

print

(mid)

把二分查詢法的思想應用到這道題上:

class

solution

:def

minnumberinrotatearray

(self, rotatearray)

:# write code here

#二分法

ifnot rotatearray:

return

none

left=

0 right=

len(rotatearray)-1

while left<=right:

mid=

(left+right)

>>

1if rotatearray[mid]

:return rotatearray[mid]

elif rotatearray[mid]

: right=mid-

1else

: left=mid+

1return

0

牛客66道程式設計題 替換空格

class solution s 源字串 defreplacespace self,s write code here return s.replace 20 class solution s 源字串 defreplacespace self,s write code here s list s 把...

牛客66道程式設計題 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 當只有1個台階時,只有一種跳法,那就是1。當有2個台階時,則有兩種跳法,分別是1 1和2。當有3個台階時,則有3種跳法,分別是1 1 1,1 2和2 1。當有4個台階時,則有5種跳法,...

牛客刷題 找旋轉陣列的最小元素

把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。解題思路 1 遍歷一遍陣列,只要遇到後乙個比前乙個小,那麼後乙個 就是最小...