题目分析可知肯定是有山峰的,所以其实就是找到最大值的索引就可以了
一、顺序查找
class Solution:
def peakIndexInMountainArray(self, A: List[int]) -> int:
i = 0
while A[i] <= A[i+1]:
i+=1
return i
二、二分查找
class Solution:
def peakIndexInMountainArray(self, A: List[int]) -> int:
low = 0
high = len(A) - 1
while low <= high:
mid = (low + high) // 2
middle_num = A[mid]
if middle_num > A[mid-1] and middle_num > A[mid+1]:
return mid
if A[mid-1]<A[mid]<A[mid+1]:
low = mid + 1
else:
high = mid - 1
1.//是向下取整的意思吧
三、
return A.index(max(A))
Python自带的函数一般都会有内部的优化