leetcode题解-162. Find Peak Element
来源:互联网 发布:淘宝店家信誉等级 编辑:程序博客网 时间:2024/06/05 15:05
题目:
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[n] = -∞.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.Note:Your solution should be in logarithmic complexity.
这道题目比较简单,目的是寻找数组中任意一个极大值点。有两种思路,一种是遍历数组,判断每个元素是否满足条件,这里需要注意的是,我们不需要判断是否大于右边并且大于左边,我们只需要判断大于右边即可,因为在这种便利条件下,到了这个元素就说明他一定大于左边的元素。可以省去一次判断,代码入下:
public int findPeakElement(int[] nums) { if(nums.length <=1 || nums[0] > nums[1]) return 0; for(int i=1; i<nums.length-1; i++){ if(nums[i] > nums[i+1]) return i; } return nums.length-1; }
还有一种方案就是,使用binary-search,代码如下:
public int findPeakElement1(int[] nums) { int n = nums.length; int lo = 0, hi = n - 1; while(lo < hi) { int mid = lo + (hi - lo) / 2; if(nums[mid] < nums[mid+1]) { lo = mid + 1; } else { hi = mid; } } return lo; }
阅读全文
0 0
- leetcode题解-162. Find Peak Element
- 162. Find Peak Element 题解
- LeetCode 题解(137): Find Peak Element
- [LeetCode]162.Find Peak Element
- LeetCode 162. Find Peak Element
- [leetcode] 162.Find Peak Element
- 【LeetCode】162. Find Peak Element
- Leetcode 162. Find Peak Element
- [LeetCode]162. Find Peak Element
- 162. Find Peak Element LeetCode
- [LeetCode]162. Find Peak Element
- [LeetCode]162. Find Peak Element
- LeetCode *** 162. Find Peak Element
- leetcode.162. Find Peak Element
- LeetCode-162.Find Peak Element
- LeetCode 162. Find Peak Element
- [leetcode] 162. Find Peak Element
- LeetCode 162. Find Peak Element
- 简单加解密(三)
- 整理第十届河南省ACM省赛正解
- JDK-db
- 对于Spring中IOC的理解
- Tomcat在服务端Manager App无法打开
- leetcode题解-162. Find Peak Element
- Java 笔记----数据库操作(一)
- laravel结合七牛实现base64的图片上传
- java.sql.SQLException: Parameter index out of range (0 < 1 ).
- Torch学习笔记(一)
- MarkDown语法入门指南(转载)
- [Unity&数组&List&JSON]创建一个字符串数组string[]类型的list
- JDK-include
- 4881: [Lydsy2017年5月月赛]线段游戏