題目:2951-找出峰值
????????給你一個下標從?0?開始的數組?mountain
?。你的任務是找出數組?mountain
?中的所有?峰值。
以數組形式返回給定數組中?峰值?的下標,順序不限?。
注意:
- 峰值?是指一個嚴格大于其相鄰元素的元素。
- 數組的第一個和最后一個元素?不?是峰值。
示例 1:
輸入:mountain = [2,4,4] 輸出:[] 解釋:mountain[0] 和 mountain[2] 不可能是峰值,因為它們是數組的第一個和最后一個元素。 mountain[1] 也不可能是峰值,因為它不嚴格大于 mountain[2] 。 因此,答案為 [] 。
示例 2:
輸入:mountain = [1,4,3,8,5] 輸出:[1,3] 解釋:mountain[0] 和 mountain[4] 不可能是峰值,因為它們是數組的第一個和最后一個元素。 mountain[2] 也不可能是峰值,因為它不嚴格大于 mountain[3] 和 mountain[1] 。 但是 mountain[1] 和 mountain[3] 嚴格大于它們的相鄰元素。 因此,答案是 [1,3] 。
提示:
3 <= mountain.length <= 100
1 <= mountain[i] <= 100
題目分析:
遍歷 列表mountain[1:n-1],因為第一個和最后一個不可能為峰值,所以不需遍歷,然后加上個判斷條件
if mountain[j-1]<mountain[j] and mountain[j]>mountain[j+1]:
符合條件將下標j加入列表,最后返回儲存答案的列表即可完成。
代碼實現:
class Solution:def findPeaks(self, mountain: List[int]) -> List[int]:ls=[]n=len(mountain)for j in range(1,n-1):if mountain[j-1]<mountain[j] and mountain[j]>mountain[j+1]:ls.append(j)return ls
總結:這道題算是比較簡單的每日一題了,雖然簡單,但我認為貴在堅持。堅持每日打卡~?