# 尋找區域性最高點
# 輸入input: 含有最高點高度的列表
# 輸出output: 返回最高點的位置
# 時間複雜度: o(log(n))
deffindhighspot
(input):
ilen =
len(
input
) mid = ilen//2-
1# python中'/'為小數除法,'//'為地板除
ifinput
[mid-1]
<=
input
[mid]
>=
input
[mid+1]
:return
str(mid+1)
# 預設返回最高點到第乙個點之間的距離
elif
input
[mid-1]
>
input
[mid]
:return findhighspot(
input
[:mid//2]
)else
:return
'mid+'
+findhighspot(
input
[mid//2:
])# 返回最高點距離中間點的距離
if __name__ ==
'__main__'
:input=[
1,2,
6,5,
3,7,
4]output = findhighspot(
input
)print
('output:'
, output)
# output: 3
Python 尋找區域性最高點的實現
我就廢話不多說了,直接上 吧!尋找區域性最高點 輸入input 含有最高點高度的列表 輸出output 返回最高點的位置 時間複雜fsfktzora度 o log n findhighspot input ilen len input mid ilen 2 1 python中 為小數除法,為地板除 ...
尋找區域性最高點 1D
如題,在1維陣列中,如果乙個數大於或等於左右兩邊相鄰的數,則稱區域性最高點 1d。其中邊界外值為 infty 即最左邊和最右邊只需大於臨近的乙個元素。一種方法是從第乙個元素逐個開始遍歷。演算法複雜度為 t o n t o n t o n 另一種演算法使用二分法。對於乙個點,有以下情況 如下 auth...
尋找區域性最小
定義區域性最小的概念。arr長度為1時,arr 0 是區域性最小。arr的長度為n n 1 時,如果arr 0 區域性最小的概念和極小值是一樣的,先判斷邊界,如果arr 0 的值比arr 1 小,arr n 1 的值比arr n 2 小,則arr 0 和arr n 1 也是區域性最小。如果上面兩種都...