【数组】Find Peak Element
2016-01-13 23:20
267 查看
题目:
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
思路:
按照题意,num[0]是大于左边的不存在的那个元素的,num[size-1]也是大于右边那个不存在的元素的,假如不存在,那么就会有num[0]<num[1],num[1]<num[2],就是增序,num[size-2]<num[size-1],这样num[size-1]就是peak elem了,所以一定存在。于是就是这样的思路,num[NULL] < num[0],我们假设左边的元素小于右边的元素,那么第一个左边元素大于右边的那个一定是peak elem.如num[0]。
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 = -∞.
For example, in array
[1, 2, 3, 1], 3 is a peak element and your function should return the index number 2.
思路:
按照题意,num[0]是大于左边的不存在的那个元素的,num[size-1]也是大于右边那个不存在的元素的,假如不存在,那么就会有num[0]<num[1],num[1]<num[2],就是增序,num[size-2]<num[size-1],这样num[size-1]就是peak elem了,所以一定存在。于是就是这样的思路,num[NULL] < num[0],我们假设左边的元素小于右边的元素,那么第一个左边元素大于右边的那个一定是peak elem.如num[0]。
/** * @param {number[]} nums * @return {number} */ var findPeakElement = function(nums) { var n=nums.length; for(var i=1;i<n;i++){ if(nums[i]<nums[i-1]){ return i-1; } } return n-1; };
相关文章推荐
- java web学习笔记day2
- 第二篇总结(2016/01/13)
- Android Studio 快捷键
- Attach、Detach和DeleteObject
- 关于异步信号安全
- CentOS 7下 安装Nvidia Optimus驱动
- Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
- tengine安装
- 构建ASP.NET MVC5+EF6+EasyUI 1.4.3+Unity4.x注入的后台管理系统(53)-工作流设计-我的批阅
- 记录一下Python 中spynner模块的安装过程
- Redis 集群的分库和分片
- rabbitMQ的简单实例——amqp协议带数据回写机制
- jQuery旋转式动画导航特效
- Android Studio 打包流程
- 国内外三个不同领域巨头分享的Redis实战经验及使用场景
- 面向对象---final修饰
- initWithFrame 和 initWithCoder 区别
- ios的多线程
- AppStore App申请加速审核
- 【Node.js入门】--开门篇