LeetCode162 尋找峰值

2021-10-01 11:05:51 字數 647 閱讀 7781

問題:尋找峰值:峰值元素是指其值大於左右相鄰值的元素。

給定乙個輸入陣列 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素並返回其索引。

陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。

你可以假設 nums[-1] = nums[n] = -∞。

這個題中重點的乙個條件:nums[-1] = nums[n] = -∞;也就是說這個峰值,他可能在陣列頭或尾

分析:採用二分法找大的那一半;因為在大的那一邊緣元素肯定大於他旁邊的,如果已知nums[mid]>nums[mid+1],那麼mid-1不是大於mid就是小於,當小於時便成功,大於時到首位,nums[0] = -∞,成功;先已知 nums[mid+1]>nums[mid],那麼mid+2只有兩種可能,乙個是大於mid+1,乙個是小於mid+1,小於mid+1的情況,那麼mid+1就是峰值,大於mid+1的情況,繼續向右推,如果一直到陣列的末尾都是大於的,那麼可以肯定最後乙個元素是峰值,因為nums[nums.length]=負無窮

class

solution

else

}return left;

}}

LeetCode 162 尋找峰值

題目描述 峰值元素是指其值大於左右相鄰值的元素。給定乙個輸入陣列nums,其中nums i nums i 1 找到峰值元素並返回其索引。陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。你可以假設nums 1 nums n 示例 輸入 nums 1,2,3,1 輸出 2 解釋 3 是...

LeetCode 162 尋找峰值

峰值元素是指其值大於左右相鄰值的元素。給定乙個輸入陣列nums,其中nums i nums i 1 找到峰值元素並返回其索引。陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。你可以假設nums 1 nums n 示例 1 輸入 nums 1,2,3,1 輸出 2解釋 3 是峰值元素...

LeetCode162 尋找峰值

峰值元素是指其值大於左右相鄰值的元素。給定乙個輸入陣列 nums,其中 nums i nums i 1 找到峰值元素並返回其索引。陣列可能包含多個峰值,在這種情況下,返回任何乙個峰值所在位置即可。你可以假設 nums 1 nums n 示例 1 輸入 nums 1,2,3,1 輸出 2 解釋 3 是...