【剑斩OFFER】算法的暴力美学——寻找峰值

一、题目描述

二、算法原理

这道题和山脉数组的蜂顶索引的解法几乎一样,只不过除了left 和 right 的取值不同罢了,因为在这道题目中有些特殊的例子如【 2,1】 返回0,一般来说有峰顶的数组的数字至少要三,所以这里我们可以把这到题目看成是求这个数组里面的最大值,有因为假设有两个峰顶,当我们的中间落在峰顶的旁边时,我们只要求这个峰顶就行,因为题目说只要求其中一个就行不是吗?

所以我们看这篇博客的算法原理就行:

https://blog.csdn.net/2403_84958571/article/details/154749271?spm=1011.2415.3001.10575&sharefrom=mp_manage_link

三、代码实现

cpp 复制代码
class Solution {
public:
    int findPeakElement(vector<int>& nums) {
        int left = 0,right = nums.size() - 1;
        while(left < right)
        {
            int mid = left + (right - left + 1)/2;
            if(nums[mid] > nums[mid - 1]) left = mid;
            else right = mid - 1;
        }
        return left;
    }
};
相关推荐
一切皆是因缘际会9 分钟前
LLM轻量化联邦微调机理
数据结构·人工智能·数学建模·ai
yuan1999728 分钟前
欧拉梁静力与屈曲计算的 MATLAB 实现(有限差分法 + 解析解)
开发语言·算法·matlab
玖玥拾1 小时前
C/C++ 数据结构(六)链表迭代器与底层
c语言·数据结构·c++·链表·stl库
牛油果子哥q1 小时前
AVL平衡树与红黑树深度精讲对比,平衡因子、四大旋转原理、着色规则、平衡策略、性能差异与面试手撕全解
数据结构·c++·面试
汉克老师1 小时前
GESP7级C++考试语法知识(二、指数函数(3、综合练习)
c++·算法·数学建模·指数函数·gesp7级·复利
林间码客2 小时前
04 ROC曲线与AUC:从零开始手动计算
大数据·人工智能·算法
Irissgwe2 小时前
map/set/multimap/multiset 的底层逻辑与实现
数据结构·c++·算法·二叉树·stl·c·红黑树
IronMurphy2 小时前
【算法五十八】23. 合并 K 个升序链表
数据结构·算法·链表
思茂信息2 小时前
CST软件基于液态金属开关的方向图可重构天线
服务器·算法·重构·cst·仿真软件·电磁仿真
月疯3 小时前
PPG研究中暑的算法记录
算法