我什么都做不到,我只会暴力

若元素左侧/右侧无元素,只需要比后/前一个大即可
若元素两侧无元素,则返回 0
总而言之,找最大元素的下标肯定没错 代码如下:

class Solution:
    def findPeakElement(self , nums: List[int]) -> int:
        i = 0
        max_ind = 0
        while i < len(nums):
            if nums[max_ind] < nums[i]:
                max_ind = i
            i += 1
        return max_ind

可是我不甘心,为什么我只会暴力
于是我到评论区取经,然后我看到了二分

对哦!找最大元素的话二分也行
然后转念一想不对,二分查找是找数组内的值的,人晕了

无奈求助官解,看完官解后豁然开朗
代码如下:

class Solution:
    def findPeakElement(self , nums: List[int]) -> int:        
        low, high = 0, len(nums) - 1
        while low < high:
            mid = (low + high) // 2
            if nums[mid] < nums[mid + 1]:
                low = mid + 1
            else:
                high = mid
    
        return high

会了,但没完全会
这真的能想出来吗
人类进化为什么不带上我