博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode----162. Find Peak Element
阅读量:4112 次
发布时间:2019-05-25

本文共 1341 字,大约阅读时间需要 4 分钟。

链接:

大意:

返回一个数组的峰顶值所在的位置。一个数组的峰顶值:该值大于其左右两边相邻的两个元素。规定:nums[0]左边和nums[nums.length - 1]右边可以认为是Integer.MIN_VALUE。例子:

思路:

顺序遍历,找到第一个降序的点即可。

代码:

class Solution {    public int findPeakElement(int[] nums) {        if (nums.length <= 1)            return 0;        int i = 0;        // 找到第一个降序的点        while (i + 1 < nums.length && nums[i] < nums[i + 1]) {            i++;        }        return i == nums.length ? i - 1 : i;    }}

结果:

结论:

刚才又认真地看了遍题目,说是最好用对数复杂度解决,自己的方法是线性复杂度,有待改进。

最佳:(基于二分查找)

class Solution {    public int findPeakElement(int[] nums) {        //easy solution is O(n)         //How to use binary search        int l = 0, r = nums.length-1;        while ( l < r ) {            //System.out.println(l + " " + r);            int m = (l+r)/2;            int m1 = m+1;            int m2 = m > 0 ? m-1 : m;            //Find the target that bigger that its neighbor            if ( nums[m] > nums[m1] && nums[m] >= nums[m2] ) {                return m;            } else if ( nums[m] > nums[m1] ) {                r = m;            }             // Actually can go either ways if both nums[m] lesser than both its neighbor. For the sake of simplicity, we go right so we don't need to check for other condition.             else                  l = m1;        }        //since we check with m+1, need to return l        return l;    }}

 

转载地址:http://hxesi.baihongyu.com/

你可能感兴趣的文章
js报错显示subString/subStr is not a function
查看>>
高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
查看>>
初始化VUE项目报错
查看>>
vue项目使用安装sass
查看>>
HTTP和HttpServletRequest 要点
查看>>
在osg场景中使用GLSL语言——一个例子
查看>>
关于无线PCB中 中50欧姆的特性阻抗的注意事项
查看>>
Spring的单例模式源码小窥
查看>>
后台服务的变慢排查思路(轻量级应用服务器中测试)
查看>>
MySQL中InnoDB事务的默认隔离级别测试
查看>>
微服务的注册与发现
查看>>
bash: service: command not found
查看>>
linux Crontab 使用 --定时任务
查看>>
shell编程----目录操作(文件夹)
查看>>
机器学习-----K近邻算法
查看>>
HBASE安装和简单测试
查看>>
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
tomcat 使用心得(问题)-eclipse 启动tomcat 后 浏览器访问404 --eclipse复制工程显示原来的工程名
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>