每天一道算法题【蓝桥杯】【山脉数组的峰顶索引】

思路

二分查找算法

注意二段性

两段性为peak前arr[mid] < arr[mid + 1]

peak后arr[mid] >arr[mid + 1]

c++ 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<vector>
using namespace std;
class Solution {
public:
    int peakIndexInMountainArray(vector<int>& arr) {
        int left = 0, right = arr.size() - 1, mid = 0;    //置二分查找左右指针
        while (left < right)
        {
    mid = left + (right - left) / 2;
    if (arr[mid] < arr[mid + 1])left = mid + 1; //两段性为peak前arr[mid] < arr[mid + 1]
    else right = mid;        //peak后arr[mid] >arr[mid + 1]
           
        }
        return left;
    }
};
相关推荐
麦格芬2302 分钟前
LeetCode 763 划分字母区间
算法·leetcode·职场和发展
star _chen15 分钟前
C++ std::move()详解:从小白到高手
开发语言·c++
福尔摩斯张20 分钟前
C++核心特性精讲:从C语言痛点出发,掌握现代C++编程精髓(超详细)
java·linux·c语言·数据结构·c++·驱动开发·算法
charlie11451419142 分钟前
如何快速在 VS2026 上使用 C++ 模块 — 完整上手指南
开发语言·c++·笔记·学习·现代c++
涛涛北京1 小时前
【强化学习实验】- 策略梯度算法
人工智能·算法
栀秋6661 小时前
深入浅出链表操作:从Dummy节点到快慢指针的实战精要
前端·javascript·算法
Pyeako1 小时前
机器学习之KNN算法
人工智能·算法·机器学习
xhxxx1 小时前
从被追问到被点赞:我靠“哨兵+快慢指针”展示了面试官真正想看的代码思维
javascript·算法·面试
报错小能手1 小时前
STL_unordered_map
开发语言·c++·哈希算法
可信计算1 小时前
【算法随想】一种基于“视觉表征图”拓扑变化的NLP序列预测新范式
人工智能·笔记·python·算法·自然语言处理