[LeetCode] Find Peak Element
2015-07-08 17:50
302 查看
A peak element is an element that is greater than its neighbors.
Given an input array where
The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.
You may imagine that
For example, in array
click to show spoilers.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
Hide Tags
Array Binary Search
分析:
参考 http://www.cnblogs.com/diegodu/p/4589781.html 这个是找局部最小
此题是找局部最大
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 = -∞.
For example, in array
[1, 2, 3, 1], 3 is a peak element and your function should return the index number 2.
click to show spoilers.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
Hide Tags
Array Binary Search
分析:
参考 http://www.cnblogs.com/diegodu/p/4589781.html 这个是找局部最小
此题是找局部最大
class Solution { public: int findPeakElement(vector<int>& nums) { if(nums.size() == 0) return -1; if(nums.size() == 1) return 0; if(nums[0] > nums[1]) return 0; int size = nums.size(); if(nums[size - 1] > nums[size - 2]) return size - 1; int low = 1; int high = size - 2; int mid; while(low < high) { mid = (low + high)/2; if(nums[mid] < nums[mid+1]) { low = mid+1; } else if(nums[mid] < nums[mid-1]) { high = mid-1; } else return mid; } return low; } };
相关文章推荐
- this&super
- 编码方式详解及由来
- 会员等级
- Struts2标签之select的使用方法
- ubuntu15.04 开启root登陆
- awk 数值和字符串比较问题
- 切片优化小拾
- 电话号码对应英语单词
- 最新版SDWebImage的使用
- 98 成绩转换
- TCP/IP 协议
- 递归与调用栈工作原理-典型递归例题实现
- android adb介绍
- 【算法学习笔记】67.状态压缩 DP SJTU OJ 1383 畅畅的牙签袋
- 如何在Java客户端调用RESTful服务
- 2012年5月SAT香港真题解析
- oracle archivelog模式与非archivelog模式转换
- 七、Oracle分页
- jQuery上传插件Uploadify 3.2用法
- Android 屏幕适配相关解决方案