题目分析:依次比较下去,第一个nums[i] > nums[i+1]的位置就是peak。时间复杂度是o(n)
二分查找
class Solution:
def subsetsWithDup(self, nums):
# for i in range(0, len(nums)-1):
# if nums[i] > nums[i+1]:
# return i
# else:
# return len(nums)-1
l = 0
r = len(nums)-1
while l < r:
mid = (l+r)//2
if nums[mid] > nums[mid+1]:
r = mid
else:
l = mid+1 # 取下整数,所以mid+1
return l