我們把符合下列屬性的陣列 a 稱作山脈:
a.length >= 3
存在 0 < i < a.length - 1 使得a[0] < a[1] < … a[i-1] < a[i] > a[i+1] > … > a[a.length - 1]
給定乙個確定為山脈的陣列,返回任何滿足 a[0] < a[1] < … a[i-1] < a[i] > a[i+1] > … > a[a.length - 1] 的 i 的值。
找最大值的索引:
class
solution
:def
peakindexinmountainarray
(self, a: list[
int])-
>
int:
return a.index(
max(a)
)
二分:class
solution
:def
peakindexinmountainarray
(self, a: list[
int])-
>
int:
iflen
(a)<=2:
return a.index(
max(a)
) mid =
len(a)//2
if a[mid]
> a[mid-1]
and a[mid]
> a[mid+1]
:return mid
if a[mid]
< a[mid-1]
:return self.peakindexinmountainarray(a[
:mid]
)else
:return self.peakindexinmountainarray(a[mid+1:
])+1
+mid
LeetCode 852 山脈陣列的峰頂索引
我們把符合下列屬性的陣列a稱作山脈 給定乙個確定為山脈的陣列,返回任何滿足a 0 a 1 a i 1 a i a i 1 a a.length 1 的i的值。示例 1 輸入 0,1,0 輸出 1示例 2 輸入 0,2,1,0 輸出 1 3 a.length 100000 a i 10 6 a 是如上...
leetcode 852 山脈陣列的峰頂索引
我們把符合下列屬性的陣列a稱作山脈 給定乙個確定為山脈的陣列,返回任何滿足a 0 a 1 a i 1 a i a i 1 a a.length 1 的i的值。示例 1 輸入 0,1,0 輸出 1示例 2 輸入 0,2,1,0 輸出 13 a.length 10000 0 a i 10 6 a 是如上...
852 山脈陣列的峰頂索引
題目分析可知肯定是有山峰的,所以其實就是找到最大值的索引就可以了 一 順序查詢 class solution def peakindexinmountainarray self,a list int int i 0 while a i a i 1 i 1 return i 二 二分查詢 class ...