Leetcode中等題162.尋找峰值C++

題目及鏈接如下:

162. 尋找峰值

難度中等342收藏分享切換為英文接收動態(tài)反饋

峰值元素是指其值大于左右相鄰值的元素。

給定一個輸入數(shù)組 nums,其中 nums[i] ≠ nums[i+1]碗旅,找到峰值元素并返回其索引育勺。

數(shù)組可能包含多個峰值众眨,在這種情況下留荔,返回任何一個峰值所在位置即可晌端。

你可以假設(shè) nums[-1] = nums[n] = -∞

示例 1:

輸入: nums = [1,2,3,1]
輸出: 2
解釋: 3 是峰值元素丧鸯,你的函數(shù)應(yīng)該返回其索引 2。

示例 2:

輸入: nums = [1,2,1,3,5,6,4]
輸出: 1 或 5 
解釋: 你的函數(shù)可以返回索引 1嫩絮,其峰值元素為 2丛肢;
     或者返回索引 5, 其峰值元素為 6剿干。

說明:

你的解法應(yīng)該是 O(logN) 時間復(fù)雜度的蜂怎。

分析:當(dāng)時看到O(log N)就想到了用二分查找,但這是種投機(jī)取巧且不嚴(yán)謹(jǐn)?shù)慕忸}方法??置尔。如果按照題意分析的話杠步,這道題是一個求極大值的題目。我們高中的時候榜轿,在求解函數(shù)極值的方法中幽歼,其實(shí)就有用二分法求解極值的方法(忘了的話可以百度搜索二分法求極值)。因此這道題可以很自然地想到利用二分法來進(jìn)行求解差导。這道題便可以看成是用二分求解離散的極大值试躏。

代碼及細(xì)節(jié)分析如下:

class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        int left = 0, right = nums.size() - 1;
        while (left < right) {//當(dāng)需要保留查找值與右鄰的關(guān)系時,采用leetcode二分專題的模板2
            int mid = left +(right - left) / 2;//防止越界
            if (nums[mid] > nums[mid + 1]) {
                right = mid;   //保證當(dāng)前right索引對應(yīng)的值大于右側(cè)鄰居的值
            } else { // nums[mid] < nums[mid+1]
                left = mid + 1;  //保證當(dāng)前l(fā)eft索引對應(yīng)的值大于左側(cè)鄰居的值
            }
            //當(dāng)left和right重合時设褐,保證了當(dāng)前對應(yīng)的值既比左鄰大又比友鄰大颠蕴,即極值
        }
        return left;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泣刹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子犀被,更是在濱河造成了極大的恐慌椅您,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寡键,死亡現(xiàn)場離奇詭異掀泳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)西轩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門员舵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人藕畔,你說我怎么就攤上這事马僻。” “怎么了注服?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵韭邓,是天一觀的道長。 經(jīng)常有香客問我溶弟,道長女淑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任辜御,我火速辦了婚禮鸭你,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘我抠。我一直安慰自己苇本,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布菜拓。 她就那樣靜靜地躺著瓣窄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪纳鼎。 梳的紋絲不亂的頭發(fā)上俺夕,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天,我揣著相機(jī)與錄音贱鄙,去河邊找鬼劝贸。 笑死,一個胖子當(dāng)著我的面吹牛逗宁,可吹牛的內(nèi)容都是我干的映九。 我是一名探鬼主播,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼瞎颗,長吁一口氣:“原來是場噩夢啊……” “哼件甥!你這毒婦竟也來了捌议?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤引有,失蹤者是張志新(化名)和其女友劉穎瓣颅,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體譬正,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宫补,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了曾我。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粉怕。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖抒巢,靈堂內(nèi)的尸體忽然破棺而出斋荞,到底是詐尸還是另有隱情,我是刑警寧澤虐秦,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站凤优,受9級特大地震影響悦陋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜筑辨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一俺驶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧棍辕,春花似錦暮现、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至抚太,卻和暖如春塘幅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尿贫。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工电媳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庆亡。 一個月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓匾乓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親又谋。 傳聞我的和親對象是個殘疾皇子拼缝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容