📅  最后修改于: 2023-12-03 15:12:46.340000             🧑  作者: Mango
本题是针对程序员的一道必做题目,题目代码如下:
class Solution:
def findPeakElement(self, nums: List[int]) -> int:
left, right = 0, len(nums) - 1
while left < right:
mid = (left + right) // 2
if nums[mid] > nums[mid + 1]:
right = mid
else:
left = mid + 1
return left
这段代码实现的功能是寻找给定数组中的峰值,并返回峰值的下标。
其中,数组nums的长度n满足1 <= n <= $10^4$,nums中的整数大小在$-2^{31}$和$2^{31}-1$之间。
对于本题,我们可以采用二分查找的方法来寻找峰值,具体实现如下:
在本题中,我们需要注意边界情况的判断,例如左右边界是否合法、mid+1位置是否越界等。
我们可以通过一些特殊的样例进行测试,以保证代码的正确性。
该题可以帮助程序员提高对于二分查找算法的理解和掌握,并能够训练出对各种边界情况的判断能力。
题目来源:LeetCode 162.寻找峰值