Leetcode162-Find Peak Element

題目:

A peak element is an element that is greater than its neighbors.

Given an input array nums, where nums[i] ≠ nums[i+1], find a peak element and return its index.

The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.

You may imagine that nums[-1] = nums[n] = -∞.

Example1:
Input: nums = [1,2,3,1]
Output: 2
Explanation: 3 is a peak element and your function should return the index number 2.

Example2:
Input: nums = [1,2,1,3,5,6,4]
Output: 1 or 5
Explanation: Your function can return either index number 1 where the peak element is 2,
or index number 5 where the peak element is 6.

思路:

本題有兩種解法敞贡。首先自然是非常簡單粗暴的一個一個找甸鸟,并且比較兩邊的元素照弥。找到一個符合條件的就break出循環(huán)粱栖。但是注意最后需要控制好邊界绘沉。結(jié)果雖然過了但是整個算法跑的非常慢贴浙。

本題推薦使用第二種解法译红,也就是二分法來解決。首先找到中間元素設(shè)為mid铃将,如果mid位置上的元素大于mid+1上的元素徽曲,則說明咱們要找的目標(biāo)元素可能在左邊,此時將right設(shè)為mid麸塞。反之,如果mid+1上的元素大于mid上的元素涧衙,則目標(biāo)元素可能在右邊哪工,此時將left設(shè)為mid+1。最后返回位置left弧哎。

代碼:

/**
     * Find peak element
     * @param nums
     * @return
     */
    public int findPeakElement(int[] nums) {
        if(nums == null || nums.length == 0)
            return 0;
        int left = 0;
        int right = nums.length - 1;
        while(left < right){
            int mid = (left + right) / 2;
            if(nums[mid] < nums[mid + 1]){
                left = mid + 1;
            }else{
                right = mid;
            }
        }
        return left;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末雁比,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子撤嫩,更是在濱河造成了極大的恐慌偎捎,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件序攘,死亡現(xiàn)場離奇詭異茴她,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)程奠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門丈牢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人瞄沙,你說我怎么就攤上這事己沛。” “怎么了距境?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵申尼,是天一觀的道長。 經(jīng)常有香客問我垫桂,道長师幕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任诬滩,我火速辦了婚禮们衙,結(jié)果婚禮上钾怔,老公的妹妹穿的比我還像新娘。我一直安慰自己蒙挑,他們只是感情好宗侦,可當(dāng)我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忆蚀,像睡著了一般矾利。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上馋袜,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天男旗,我揣著相機(jī)與錄音,去河邊找鬼欣鳖。 笑死察皇,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泽台。 我是一名探鬼主播什荣,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怀酷!你這毒婦竟也來了稻爬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蜕依,失蹤者是張志新(化名)和其女友劉穎桅锄,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體样眠,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡友瘤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了檐束。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片商佑。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖厢塘,靈堂內(nèi)的尸體忽然破棺而出茶没,到底是詐尸還是另有隱情,我是刑警寧澤晚碾,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布抓半,位于F島的核電站,受9級特大地震影響格嘁,放射性物質(zhì)發(fā)生泄漏笛求。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望探入。 院中可真熱鬧狡孔,春花似錦、人聲如沸蜂嗽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽植旧。三九已至辱揭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間病附,已是汗流浹背问窃。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留完沪,地道東北人域庇。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像覆积,于是被迫代替她去往敵國和親听皿。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,472評論 2 348

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

  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi閱讀 7,308評論 0 10
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗技健。 張土汪:刷leetcod...
    土汪閱讀 12,737評論 0 33
  • “你是一樹一樹的花開,是燕在梁間呢喃惰拱。你是愛雌贱,是暖,是希望偿短,你是人間的四月天欣孤。” 這句話每每讀起 都有暖意升起 才...
    春子的人間四月天閱讀 353評論 0 1
  • 原文載《浙江檔案》1992年第9期第44-46頁昔逗,圖片除署名外均來源于網(wǎng)絡(luò) 在美國降传,總統(tǒng)是國家的元首,是聯(lián)邦政府的...
    唐汝信閱讀 519評論 1 1