这里可以这样写的原因是如果nums[x+1]>nums[x],那么右边一定能找到的原因是如果出现降序就找到,如果一直升序那么最后一个数就是答案。否则向左nums[x+1]<nums[x]也是,如果降序出现了一个那么就找到,如果一直没降序,那么就是最后一个数。 所以不管舍弃的有没有,留下的一定能找到一个。
class Solution(object):
def findPeakElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
l,r = 0,len(nums)-1
while l < r:
mid = l + (r-l)//2
if nums[mid] < nums[mid+1]:
l = mid +1
else:
r = mid
return r