前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 162. Find Peak Element(二分)

LeetCode 162. Find Peak Element(二分)

作者头像
ShenduCC
发布2020-02-14 15:15:31
4390
发布2020-02-14 15:15:31
举报
文章被收录于专栏:算法修养算法修养

题目

题意:一个数组,相邻的元素不相等,让你找出这个数组的驼峰,驼峰就是这个元素比相邻的元素都大。

题解:二分查找,如果你发现某个元素比左边相邻的元素小,那么左边一定存在驼峰,同理,右边也是。通过这个规律就可以二分了。

代码语言:javascript
复制
class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        
        int l = 0;
        int r = nums.size()-1;
        
        while(l<=r)
        {
            int mid = (l+r)/2;
            
            if((mid+1==nums.size()||nums[mid]>nums[mid+1])&&
               (mid-1==-1||nums[mid]>nums[mid-1]))
                return mid;
            if(mid+1<nums.size()&&nums[mid]<nums[mid+1])
            {
                l = mid+1;
                continue;
            }
            
            if(mid-1>=0&&nums[mid]<nums[mid-1])
            {
                r = mid-1;
                continue;
            }
            
        }
        
        return l;
        
    }
};
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档