lintcode:寻找峰值
来源:互联网 发布:linux shell写while 编辑:程序博客网 时间:2024/06/05 04:56
lintcode:寻找峰值
题目链接
主要思路:
通过 A[0] < A[1] 并且 A[n - 2] > A[n - 1] 这个条件可知,题目可以用二分查找解决。
1.如果A[mid-1]>A[mid],那么通过条件 A[0] < A[1]可知,在区间[ 0 , mid-1]存在峰值。
2.如果A[mid] < A[mid+1],同理,在区间[ mid+1,n ]存在峰值。
class Solution {public: /** * @param A: An integers array. * @return: return any of peek positions. */ int findPeak(vector<int> A) { // write your code here /*根据题目可知,峰值区间在[ 1,A.size()-1]。这里防止A[mid-1]A[mid+1]越界,所以l=1,r=A.size()-1.*/ int r,l=1; r=A.size()-1; while(l<=r) { int mid=(l+r)/2; if(A[mid]>A[mid-1] && A[mid]>A[mid+1]) return mid; else if(A[mid-1]>A[mid]) r=mid-1; else if(A[mid]<A[mid+1]) l=mid+1; } return -1; }};
0 0
- LintCode-寻找峰值
- [LintCode]寻找峰值
- lintcode:寻找峰值
- LintCode 75 寻找峰值
- LintCode : 寻找峰值
- Lintcode 寻找峰值
- LintCode 75 寻找峰值
- 寻找峰值-LintCode
- 【Lintcode】寻找峰值
- lintcode--寻找峰值
- Google/LintCode:M-寻找峰值
- [Lintcode]Find Peak Element 寻找峰值
- 寻找峰值 查看运行结果 ——LintCode
- 寻找峰值
- 寻找峰值
- 寻找峰值
- 寻找峰值
- 寻找峰值
- Visual Studio搭建Python开发环境及Python Environment的问题
- android Ble开发的那些事(二)
- xstream ---java序列化到xml,xml反序列化到java对象(一)
- 专职测试是必须的吗
- ajax
- lintcode:寻找峰值
- (转)redis集群配置
- 使用DDMS获取log信息
- 一位资深程序员大牛给予Java学习者的学习路线建议
- 通过html调起app,并传递数据
- vc++6.0(Visual C++)中文企业版
- 编译arm平台的ethtool
- SAP的启动、停止
- 二叉树的创建与遍历