我什么都做不到,我只会暴力
若元素左侧/右侧无元素,只需要比后/前一个大即可
若元素两侧无元素,则返回 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
会了,但没完全会
这真的能想出来吗
人类进化为什么不带上我