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

思路

二分查找算法

注意二段性

两段性为peak前arrmid < arrmid + 1

peak后arrmid >arrmid + 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;
    }
};
相关推荐
Ivanqhz9 小时前
刚体的自由度
人工智能·算法
KaMeidebaby10 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
Yang_jie_0310 小时前
笔记:数据结构(栈是否使用底指针以及头指针的初始化值)
数据结构·笔记·算法
aaPIXa62211 小时前
C++采样引导优化SPGO——比PGO更智能的编译器决策新方案
java·c++·人工智能
2301_8008951011 小时前
信息安全数学基础复习
算法
爱折腾的小黑牛11 小时前
简记往来批量录入功能的实现:从文本到结构化数据
前端·算法
Starmoon_dhw11 小时前
题解:P17078 夏日甜点
c++·学习·算法·图论
某不知名網友11 小时前
C/C++动态内存管理,智能指针及RAlI思想。
java·c语言·c++
海石12 小时前
【JS击败90%】前缀和+定长滑动窗口
算法·leetcode
hold?fish:palm12 小时前
从源码到可执行文件:C++程序的编译过程
开发语言·c++