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

思路

二分查找算法

注意二段性

两段性为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;
    }
};
相关推荐
阿里嘎多哈基米1 分钟前
速通Hot100-Day09——二叉树
算法·leetcode·二叉树·hot100
Frostnova丶4 分钟前
LeetCode 48 & 1886.矩阵旋转与判断
算法·leetcode·矩阵
多打代码4 分钟前
2026.3.22 回文子串
算法·leetcode·职场和发展
奶人五毛拉人一块6 分钟前
C++入门学习
开发语言·c++·函数重载·入门·nullptr
吃不饱的得可可7 分钟前
protobuf万字总结(C++)
开发语言·c++
m0_662577977 分钟前
嵌入式C++安全编码
开发语言·c++·算法
2301_8101609510 分钟前
代码生成器优化策略
开发语言·c++·算法
HUTAC15 分钟前
关于进制转换及其应用的算法题总结
数据结构·c++·算法
im_AMBER19 分钟前
Leetcode 144 位1的个数 | 只出现一次的数字
学习·算法·leetcode
暮冬-  Gentle°23 分钟前
C++中的工厂模式实战
开发语言·c++·算法