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

思路

二分查找算法

注意二段性

两段性为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;
    }
};
相关推荐
TTGGGFF40 分钟前
控制系统建模仿真(四):线性控制系统的数学模型
人工智能·算法
小丑西瓜6661 小时前
CMake基础用法,cmake_minimum_required,project,add_executable
linux·服务器·c++·camke
晚风吹长发1 小时前
初步了解Linux中的命名管道及简单应用和简单日志
linux·运维·服务器·开发语言·数据结构·c++·算法
fpcc1 小时前
设计心得——隔离隐藏的初步实践
c++
圣保罗的大教堂2 小时前
leetcode 3315. 构造最小位运算数组 II 中等
leetcode
C++ 老炮儿的技术栈2 小时前
不调用C++/C的字符串库函数,编写函数strcpy
c语言·开发语言·c++·windows·git·postman·visual studio
Σίσυφος19002 小时前
Halcon中霍夫直线案例
算法
fyzy2 小时前
C++写后端实现,实现前后端分离
开发语言·c++
Anastasiozzzz2 小时前
leetcode力扣hot100困难题--4.俩个正序数列的中位数
java·算法·leetcode·面试·职场和发展
CSDN_RTKLIB2 小时前
C++谓词
c++·stl