題目如下:
利用二分查詢可以讓複雜度降到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的左...