Binary Search:162. Find Peak Element
来源:互联网 发布:js控制标签显示隐藏 编辑:程序博客网 时间:2024/06/05 11:59
这道题是说,给一个数组,这个数组里有好几个局部最大值,找出一个局部最大值返回其下标。数组两边都认为是负无穷。
首先想到了暴力的方法:
class Solution {public: int findPeakElement(vector<int>& nums) { int i = 1; for(; i < nums.size(); ++i) { if(nums[i] < nums[i-1]) break; } return i-1; }};
实际上这个题考查的是二分搜索。首先找到左右的中点mid位置,如果nums[mid]和nums[mid+1]构成的是一个上坡,那么说明峰值在mid的右边;如果nums[mid]和nums[mid+1]构成的是一个下坡,说明峰值在mid的左边。
class Solution {public: int findPeakElement(vector<int>& nums) { int left = 0, right = nums.size()-1; while(left < right) { int mid = left + (right - left) / 2; if(nums[mid] < nums[mid + 1]) left = mid + 1; else right = mid; } return left; }};
阅读全文
0 0
- Binary Search:162. Find Peak Element
- [leetcode][search] Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- 162. Find Peak Element
- Switchhosts软件的使用
- 解决从mysql表中多列导出数据到csv合并成一列的问题
- TrickGCD HDU
- 【论文阅读】Illuminating Pedestrians via Simultaneous Detection & Segmentation
- 电商高复用购物车业务分析和代码实现
- Binary Search:162. Find Peak Element
- 【nginx】nginx与apache详细性能对比
- 获取从服务器传来的key-value对
- ajax+post+json+@requestBody走天下
- javascript各种设计模式
- 第二次自考总结
- JS跳出循环的三种方法(break, return, continue)
- 2017-2018 ACM-ICPC, NEERC, Southern Subregional Contest (Online Mirror, ACM-ICPC Rules, Teams Prefer
- 斯坦福机器学习笔记 第2周 五、Octave教程(一)