劍指offer 第6題 旋轉陣列的最小數字

2021-09-08 12:48:18 字數 694 閱讀 7045

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

二分查詢

# -*- coding:utf-8 -*-

class solution:

def minnumberinrotatearray(self, rotatearray):

# write code here

n = len(rotatearray)

if n == 0:

return 0

l, r = 0, n-1

while r >= l:

mid = (l+r) // 2

if rotatearray[mid] < rotatearray[mid-1]:

return rotatearray[mid]

elif rotatearray[mid] >= rotatearray[l]:

l = mid

elif rotatearray[mid] <= rotatearray[r]:

r = mid

if r - l < 3:

return min(rotatearray[l:r+1])

占用記憶體:5752k

劍指offer 演算法題 09 旋轉陣列問題

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

劍指Offer 6 旋轉陣列的最小元素

description把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。可以直接binary search,每次mid和r的...

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

1.題目 把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個非減排序的陣列的乙個旋轉,輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。note 給出的所有元素都大於0,若陣列大小為0,請返回0。2.思路 可把旋轉後的陣列看做兩個有序陣列,以最小值為分界,前面...