国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Leetcode 162. Find Peak Element

2019-11-11 03:24:33
字體:
來源:轉載
供稿:網友

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

Given an input array where num[i] ≠ num[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 num[-1] = num[n] = -∞.

For example, in array [1, 2, 3, 1], 3 is a peak element and your function should return the index number 2.

s思路: 1. 這題看著沒難度啊。o(n)一遍,就出結果,出題肯定不是讓我給這個解答。也就意味著有o(lgn). 2. 確實可以用binary search。因為給的這個中間比兩邊大的要求,可以用來判斷binary search的走向。比如: 這里寫圖片描述 上圖,如果mid的位置是下坡,那么肯定有一個peak在mid的左側;如果mid的位置是上坡,那么肯定有一個peak在mid的右側。 3.這題給自己思維的啟發是:如果給的題目,看起來簡單,一下就有結果,通常就意味著出題的人需要更優化的結果,比如:簡單粗暴的做法有o(n^2),那么尋找看是否有o(nlgn)或o(n);簡單粗暴的做法有o(n),那么尋找看是否有o(lgn)!優化的關鍵,在我看來,不是炫技,而是打破潛意識的約束和限制,站在新的角度看問題而已,無所謂好壞!

class Solution {public: int findPeakElement(vector<int>& nums) { // int n=nums.size(); int l=0,r=n-1; while(l<=r){ int m=l+(r-l)/2; if((m==0||nums[m]>nums[m-1])&&(m==n-1||nums[m]>nums[m+1])) return m; if((m==0||nums[m]>nums[m-1])&&(m==n-1||nums[m]<nums[m+1]))//主動加保護 l=m+1; else r=m-1; } return 0; }};
上一篇:錯排和printf輸出%

下一篇:RandomAccessFile

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岑巩县| 泸州市| 房产| 兰溪市| 苗栗市| 民和| 楚雄市| 宽甸| 宝丰县| 湄潭县| 精河县| 丘北县| 阿瓦提县| 镇赉县| 洪泽县| 贵港市| 文登市| 无为县| 山丹县| 开阳县| 凤庆县| 大石桥市| 英吉沙县| 额敏县| 唐海县| 综艺| 独山县| 宝坻区| 弥渡县| 石嘴山市| 买车| 灵山县| 蛟河市| 石屏县| 安吉县| 钟山县| 毕节市| 靖宇县| 方山县| 巫溪县| 丰镇市|