【剑斩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;
    }
};
相关推荐
aini_lovee3 分钟前
基于 OpenCV 的模板匹配算法的 C 语言实现
c语言·opencv·算法
core5124 分钟前
EM 算法 (期望最大化):在迷雾中寻找真相
算法·em·期望最大化
CoovallyAIHub5 分钟前
YOLO11-4K:面向4K全景图像的高效实时检测框架,CVIP360数据集开源
深度学习·算法·计算机视觉
安_13 分钟前
java Arrays.sort 用的什么算法
java·算法·排序算法
蓝色汪洋13 分钟前
数字(加强版)
算法
进击的小头15 分钟前
02_嵌入式C与控制理论入门:自动控制理论核心概念拆解
c语言·单片机·算法
郝学胜-神的一滴15 分钟前
Linux 多线程编程:深入理解 `pthread_join` 函数
linux·开发语言·jvm·数据结构·c++·程序人生·算法
客梦16 分钟前
数据结构--排序
数据结构·笔记
罗湖老棍子17 分钟前
瑞瑞的木板(洛谷P1334 )
c++·算法·优先队列·贪心·哈夫曼树
embrace9933 分钟前
【数据结构学习】数据结构和算法
c语言·数据结构·c++·学习·算法·链表·哈希算法