LeetCode-162-尋找峰值

題目描述:峰值元素是指其值大于左右相鄰值的元素。
給你一個輸入數(shù)組 nums,找到峰值元素并返回其索引。數(shù)組可能包含多個峰值,在這種情況下,返回 任何一個峰值 所在位置即可。
你可以假設(shè) nums[-1] = nums[n] = -∞ 。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-peak-element/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:數(shù)組遍歷
首先,判斷兩種特殊情況:
如果只有一個元素,直接返回第一個元素的索引位;
如果有兩個元素,則根據(jù)判斷這兩個元素的大小直接返回相應(yīng)的索引位。
如果數(shù)組nums不只有2個元素,則從第一個元素開始遍歷判斷是否是峰值:
首先判斷數(shù)組的第一位,如果大于第二位的值,則返回0;
否則,遍歷從1到nums.length-2的元素,判斷是否是峰值,如果是峰值,直接返回相應(yīng)的索引位;
最后,如果沒有找到峰值,判斷最后一個元素是否大于前面的一個元素值,如果是,則返回最大的索引位,否則,返回-1表示沒有峰值。
【每日寄語】 你想賺這份錢,你就得吃這份苦。要做生活的強者,就不能在乎得失。
標(biāo)簽: