python 在陣列中找到乙個區域性最小的位置

2021-08-20 12:38:09 字數 737 閱讀 4165

題目如下:

利用二分查詢可以讓複雜度降到o(logn),空間複雜度o(1),解答如下:

python**如下:

def

getlessindex

(arr):

ifnot arr:

return -1

le = len(arr)

if le == 1

or arr[1] > arr[0]:

return

0if arr[le-1] < arr[le-2]:

return le-1

start = 1

end = le-2

while start < end:

mid = (start + end)//2

if arr[mid] > arr[mid-1]:

end = mid - 1

elif arr[mid] > arr[mid+1]:

start = mid + 1

else:

return mid

return start

題目**於《程式設計師**面試指南》

在陣列中找到乙個區域性最小的位置

題目 定義區域性最小的概念。1 arr長度為1時,arr 0 是區域性最小。2 arr的長度為n n 1 時,如果arr 0 arr 1 那麼arr 0 是區域性最小 如果arr n 1 arr n 2 那麼arr n 1 是區域性最小 如果0 i n 1,既有arr i arr i 1 又有arr...

在陣列中找到乙個區域性最小的位置

定義區域性最小的概念。arr長度為1時,arr 0 是區域性最小。arr的長度為n n 1 時,如果arr 0 給定無序陣列arr,已知arr中任何兩個相鄰的數不相等。寫乙個函式,只需返回arr中任何乙個區域性最小出現的位置即可。思路 當arr 0 arr 1 arr n 1 arr n 2 時,箭...

演算法總結之 在陣列中找到乙個區域性最小的位置

給定無序陣列arr,已知arr中任意連個相鄰的數都不相等。寫乙個函式,只需返回arr中任意乙個區域性最小出現的位置 本題利用二分查詢 1 如果arr為空後者長度為0,返回 1 2 如果arr長度為1或者arr 0 3 如果arr n 1 arr n 2 返回n 1 4 如果長度大於2 且 arr的左...