leetcode-find peak element
2014-12-06 09:12
495 查看
和best time to buy and sell stock中的某个题类似。
思路很简单:在Binary Search上略加修改。规则是:只要mid比其左邻居小,那说明左半段必然存在peak,只访问左半段即可;否则,右半段必然存在peak。需要注意的是,两端也可以是peak。
思路很简单:在Binary Search上略加修改。规则是:只要mid比其左邻居小,那说明左半段必然存在peak,只访问左半段即可;否则,右半段必然存在peak。需要注意的是,两端也可以是peak。
class Solution { public: int findPeakElement(const vector<int> &num) { int n=num.size(); int left=0,right=n-1; while(left<=right) { int mid=left+(right-left)/2; if((mid==0||num[mid]>num[mid-1])&&(mid==n-1||num[mid]>num[mid+1])) return mid; if(mid>0&&num[mid-1]>num[mid])//mid>0不要忘记 right=mid-1; else left=mid+1; } } };
相关文章推荐
- 【LeetCode】(162)Find Peak Element(Medium)
- LeetCode[162] Find Peak Element
- [LeetCode]Find Peak Element
- [leetcode]Find Peak Element
- !leetcode[162]:Find Peak Element
- leetcode_c++:Find Peak Element(162)
- [LeetCode] Find Peak Element
- Leetcode Find Peak Element
- Find Peak Element--LeetCode
- leetcode-二分查找:Find Peak Element
- [leetcode-162]Find Peak Element(c)
- leetcode Find Peak Element
- [leetcode]Find Peak Element
- [Leetcode 162, Medium] Find Peak Element
- LeetCode[Array]: Find Peak Element
- LeetCode: Find Peak Element
- [LeetCode] Find Peak Element 求数组的峰值
- LeetCode Find Peak Element
- [C语言][LeetCode][162]Find Peak Element
- 【leetcode】Find Peak Element