162. Find Peak Element——array

题目分析:依次比较下去,第一个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

相关文章: