162. Find Peak Element

162. Find Peak Element
- 这题一看很简单的,直接遍历一遍就好了,结果一看要求,要对数时间复杂度,哭唧唧,当然要用二分了,二分弄不明白,上次头条就是二分挂的。
- 题目划重点:nums[-1] = nums[n] = -∞,找到一个要下降,还没下降的位置就可以了。
class Solution(object):
def findPeakElement(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums) == 1:
return 0
l, r = 0, len(nums) - 1
while l < r:
mid = (l + r) >> 1
if nums[mid] > nums[mid + 1]:
r = mid
else:
l = mid + 1
return l