资讯专栏INFORMATION COLUMN

Find Peak Element

付永刚 / 1451人阅读

摘要:题目链接这道题给了条件,然后两端是负无穷。因为只要知道当前点是递增的,只要往右边找肯定能找到,大不了到最后,因为是永远小于当前点的。

Find Peak Element

题目链接:https://leetcode.com/problems...

这道题给了条件:nums[i] != nums[i+1],然后两端是负无穷。所以能用binary search做。因为只要知道当前点是递增的,只要往右边找肯定能找到peak,大不了到最后,因为nums[n-1]是永远小于当前点的。左边同理。

public class Solution {
    public int findPeakElement(int[] nums) {
        // binary search
        int l = 0, r = nums.length - 1;
        while(l + 1 < r) {
            int mid = l + (r - l) / 2;
            // increase
            if(mid == 0 || nums[mid] > nums[mid - 1]) l = mid;
            // decrease
            else r = mid;
        }
        if((l == 0 || nums[l-1] < nums[l]) && (l == nums.length - 1 || nums[l] > nums[l+1])) return l;
        return r;
    }
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/66632.html

相关文章

  • [Lintcode] Find Peak Element 找峰值

    摘要:找出该矩阵的一个峰值元素,返回他的坐标原题链接一维二分搜索复杂度时间空间思路最直观的方法是遍历整个矩阵,但这要的时间。 Find Peak Element I A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ num[i+1], fi...

    leiyi 评论0 收藏0
  • Selenium自动化测试网页

    摘要:当你使用时,你必须注意,如果匹配超过一个元素,只返回第一个元素。操作打开一个页面现在设置,这个在域名根目录下生效现在获取所有当前下可获得的查找元素以上是相关的基础内容,下一期更新使用页面对象模式的示例一起越来越好 今天想跟大家分享的是:关于selenium的自动化测试一些基础的东西 安装环境 1.Python环境安装完成后通过Windows命令提示符CMD输入python,查看是否安装...

    elva 评论0 收藏0
  • [Leetcode] Find Minimum in Rotated Sorted Array 找旋

    摘要:二分迭代法复杂度时间空间递归栈空间思路找旋转数组的起点,实际上类似找一个山谷,只要两边都比中间高就对了,这和这题很像。 Find Minimum in Rotated Sorted Array I Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 ...

    notebin 评论0 收藏0
  • Clustering by fast search and find of density peak

    摘要:原文链接聚类算法介绍聚类是将数据对象的集合分成相似的对象类的过程。其中基于距离的聚类算法是用各式各样的距离来衡量数据对象之间的相似度。基于互连性的聚类算法通常基于图或超图模型,将高度连通的对象聚为一类。 原文链接 https://zhangmingemma.github.... 聚类算法介绍   聚类是将数据对象的集合分成相似的对象类的过程。使得同一个簇(或类)中的对象之间具有较高的相...

    william 评论0 收藏0

发表评论

0条评论

付永刚

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<