老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

LeetCode如何尋找峰值

這篇文章給大家分享的是有關LeetCode如何尋找峰值的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

創新互聯建站10多年成都企業網站定制服務;為您提供網站建設,網站制作,網頁設計及高端網站定制服務,成都企業網站定制及推廣,對搬家公司等多個方面擁有多年設計經驗的網站建設公司。


 

題目描述

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

給定一個輸入數組 nums,其中 nums[i] ≠ nums[i+1],找到峰值元素并返回其索引。

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

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

示例 1:

輸入: nums = [1,2,3,1]輸出: 2解釋: 3 是峰值元素,你的函數應該返回其索引 2。
 

示例 2:

輸入: nums = [1,2,1,3,5,6,4]輸出: 1 或 5 解釋: 你的函數可以返回索引 1,其峰值元素為 2;     或者返回索引 5, 其峰值元素為 6。
 

說明:

你的解法應該是 O(logN) 時間復雜度的。


   

解題方案

 

思路

  • 標簽:二分查找

  • 過程:

    • 首先要注意題目條件,在題目描述中出現了nums[-1] = nums[n] = -∞,這就代表著只要數組中存在一個元素比相鄰元素大,那么沿著它一定可以找到一個峰值

    • 根據上述結論,我們就可以使用二分查找找到峰值

    • 查找時,左指針l,右指針r,以其保持左右順序為循環條件

    • 根據左右指針計算中間位置m,并比較m與m+1的值,如果m較大,則左側存在峰值,r=m,如果m+1較大,則右側存在峰值,l=m+1

  • 時間復雜度:O(logN)

LeetCode如何尋找峰值  
算法動圖
 

代碼

class Solution {    public int findPeakElement(int[] nums) {        int left = 0, right = nums.length - 1;        for (; left < right; ) {            int mid = left + (right - left) / 2;            if (nums[mid] > nums[mid + 1]) {                right = mid;            } else {                left = mid + 1;            }        }        return left;    }}

感謝各位的閱讀!關于“LeetCode如何尋找峰值”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


新聞名稱:LeetCode如何尋找峰值
文章起源:http://www.xueling.net.cn/article/jjcjpp.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: www.99久| 久久人人爽人人爽人人片亚洲 | 欧美日韩香蕉 | 欧美日韩综合一区二区 | 啦啦啦资源在线观看视频 | 国产精品久久久久久久龚玥菲 | 国产黄片软件在线观看 | 一区一区 | 找国产毛片看 | 国产尺码和欧洲尺码表2023 | 内射在线Chinese | 日韩精品成人一区二区在线 | 成人午夜一区 | 精品久久免费观看 | 可直接看的三级网站 | 邻居丰满的奶水在线hd | 国外精品视频在线观看免费 | 人与牲口性恔配视频免费 | 国产网友愉拍精品视频手机人 | 国产成人无码A区视频 | 美女视频黄频a免费网站18 | 最新国内精品自在自线视频 | 激情内射日本一区二区三区 | 玩丰满高大邻居人妻无码 | 欧美激情成人 | 亚洲第九十七页 | 久久www人成免费产片 | 日本黄色网页 | 日韩精品无吗 | 久久久久亚洲 | 激情综合网五月激情 | 青青在线免费视频 | 后入内射国产一区二区 | 武侠欧美另类人妻 | 精品久久久久久无码中文字幕一区 | 久久精品日本一区 | 中文字幕亚洲高清 | 影音先锋男人在线资源资源网 | 我趁老师睡觉偷偷的脱她内裤 | 在线不卡a资源高清 | 久久99精品久久久噜噜最新章节 |