【简单】852. 山脉数组的峰顶索引

LeetCode 852:山脉数组的峰顶索引解析与实现 这篇文章详细解析了LeetCode 852题「山脉数组的峰顶索引」的解题思路和实现方法。主要内容包括: 题目描述:要求在先递增后递减的山脉数组中,找到峰值元素的下标,时间复杂度需为O(log n)。 解题思路:利用二分查找算法,通过比较中间元素与其右侧元素的大小关系来缩小搜索范围: 若arr[mid] < arr[mid+1],说明峰值在右侧 否则峰值在左侧或就是mid 代码实现:提供了C++的二分查找实现,详细解释了算法的每一步执行过程。 复杂度分析:时间复杂度为O(log n),空间复杂度为O(1 阅读详情

【题目】
我们把符合下列属性的数组 A 称作山脉:
1、A.length >= 3
2、存在 0 < i < A.length - 1使得A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1]
给定一个确定为山脉的数组,返回任何满足 A[0] < A[1] < … A[i-1] < A[i] > A[i+1] > … > A[A.length - 1] 的 i 的值。
来源:leetcode
链接:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/
【示例1】
输入:[0,1,0]
输出:1
【示例2】
输入:[0,2,1,0]
输出:1
【提示】
3 <= A.length <= 10000
0 <= A[i] <= 10^6
A 是如上定义的山脉
【代码-线性查找】

class Solution {
public:
    int peakIndexInMountainArray(vector<int>& A) {
        int pos=0;
        for(int i=1;i<A.size()-1;i++)
            if(A[i]>A[i-1]&&A[i]>A[i+1])
                return i;        
        return pos;
    }
};

【二分查找】

class Solution {
public:
    int peakIndexInMountainArray(vector<int>& A) {
        int l=0,h=A.size()-1,m=0;
        while(l<=h){
            m=l+(h-l)/2;
            if(A[m]>A[m-1]&&A[m]>A[m+1])
                return m;
            else if(A[m]>A[m-1])
                l=m+1;
            else
                h=m-1;
        }
        return -1;
    }
};
华为od机试真题:攀登者1(Python) 华为od机试真题:攀登者1(Python) 攀登者喜欢寻找各种地图,并且尝试攀登到最高的山峰。 地图表示为一维数组,数组的索引代表水平位置,数组的元素代表相对海拔高度。其中数组元素0代表地面。 阅读详情

相关推荐

从虚拟机到双系统:手把手教你为Gromacs搭建最强Linux环境(含WSL2、Ubuntu22.04配置)

本文详细指导如何在Windows系统下为Gromacs分子动力学模拟搭建高性能Linux环境,涵盖WSL2和Ubuntu22.04双系统配置。通过对比虚拟机、WSL2和原生Linux的性能数据,提供GPU加速、内存优化等实用技巧,帮助科研人员提升计算效率。

weixin_30861797的博客 271

852. 山脉数组的峰顶索引

2021-06-15 LeetCode每日一题 链接:https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/ 标签:二分 题目 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < … arr[i-1] < arr[i] arr[i] > arr[i+1] &g

秃头哥编程 404

STK之Commu模块之三仿真卫星通信链路参数计算

考虑上述衰减的影响,可以得到卫星接收机输入端的载波功 [C] = [PT] +[GT] +[GR] -[L] -[L1] -[L2] (

juanhuokang2681的博客 8268

模块三:二分——852.山脉数组的峰顶索引

遍历整个数组,寻找数组内符合这个条件的元素即可。峰顶:比左右区间都大。

quantian_的博客 762

ROS 2 Slam Toolbox实战:从零跑通2D激光建图

SLAM(同步定位与地图构建)是移动机器人实现自主导航的基础技术,其核心在于通过传感器数据实时估计位姿并构建环境栅格地图。slam_toolbox作为ROS 2 Humble及后续LTS版本官方主推的2D SLAM后端,采用图优化+闭环检测架构,兼顾实时性、鲁棒性与工程可维护性。相比cartographer和hector_slam,它原生支持ROS 2、参数精简、诊断友好,特别适合硬件资源有限、缺乏IMU或深度相机的差速机器人平台。本文聚焦真实部署场景,覆盖RPLIDAR等常见2D激光雷达与TurtleBo

weixin_30596165的博客 358

2.实体机安装TrueNAS 方法

访问不了可以使用以下连接:提取码:0927。

Unofficial_user的博客 7438

(算法)⼭峰数组的峰顶————<二分查找>

【代码】(算法)⼭峰数组的峰顶————<二分查找>

2301_79580018的博客 639

Qt Creator设计器里也能拖拽?5步将你的QML自定义控件变成可视化插件(Qt6.5+)

本文详细介绍了如何在Qt Creator设计器中实现QML自定义控件的可视化拖拽功能(Qt6.5+)。通过5个步骤,从构建可插件化的QML控件基础到部署插件到设计器环境,帮助开发者将自定义控件转化为设计器插件,提升团队协作效率。特别适合需要频繁调整UI样式的开发场景。

weixin_29214559的博客 172

二分查找算法——山脉数组的峰顶索引

因为题目明确说明,arr一定是一个山脉数组。在上升阶段包含峰值,都满足当前位置大于前一个位置,在下降阶段,都满足当前位置小于前一个。当mid落到有区间,该位置的值不可能是结果,所以我们直接让right跳过mid,所以right = mid-1.当mid落到左区间,该位置的值有可能就是峰值,所以我们不能让left跳过mid,所以left = mid;因为我们这里并没有单独处理等于的情况,所以这里不能用简单二分,而得用查找区间右端点的写法。因为题目明确告诉我们这是一个山脉数组,所以它的二段性还是非常明显的。

xsc2004zyj的博客 412

【乐企】开票控制服务

例子:企业信息初始化。

九七的博客 456

代谢组数据分析(十九):随机森林构建代谢组预后模型

建立胃癌(GC)预后模型时,从队列3中的181名患者中,使用右删失结果数据进行了随机分层抽样,分为训练数据集(n = 121)和测试数据集(n = 60)。训练了一个包含1000棵树的随机生存森林(RSF)模型,根据它们基于排列的特征重要性来选择突出的特征。通过再次训练随机生存模型,并选取28种代谢物,建立了显示出色预测能力(AUROC = 0.832,95% CI:0.697-0.951)的最佳模型,用于预测测试数据集中GC患者的生存结果。

专注生信领域 1714

【力扣练题之二分查找】852: 山脉数组的峰顶索引

题目描述: 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i< arr.length - 1)使得: arr[0] < arr[1] < … arr[i-1] < arr[i] arr[i] > arr[i+1] > … > arr[arr.length - 1] 给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < … arr[i - 1] < arr

qq_43108684的博客 188

YOLOv8 改进:使用 MobileNetV3 轻量化架构改进特征提取网络

通过使用 MobileNetV3 作为 YOLOv8 的特征提取器,能够显著降低模型复杂度和运行时资源消耗,同时在一定程度上保持检测精度。这种方法特别适合需要高效计算的边缘设备和嵌入式系统。

走向CTO的路上... 1277

LeetCode刷题852-简单-山脉数组的峰顶索引

LeetCode刷题852-简单-山脉数组的峰顶索引

布小禅的博客 5671

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

leetcode 算法题852 (简单222) 山脉数组的峰顶索引

leetcode 算法题852 (简单222) 山脉数组的峰顶索引 题目介绍 我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... A[i-1] < A[i] > A[i+1] > ... > A[A...

FYuu95100的博客 189

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LeetCode:852. 山脉数组的峰顶索引————简单

目录题目解题思路Code运行结果 题目 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < ... arr[i-1] < arr[i] arr[i] > arr[i+1] > ... > arr[arr.length - 1] 给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < …

Kinght_123的博客 341

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【二分查找-简单】852. 山脉数组的峰顶索引

【题目】 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < … arr[i-1] < arr[i] arr[i] > arr[i+1] > … > arr[arr.length - 1] 给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < … arr[i - 1] < arr

... 130

C++: 简单试题 LeetCode 852. 山脉数组的峰顶索引

符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 < i < arr.length - 1)使得: arr[0] < arr[1] < … arr[i-1] < arr[i] arr[i] > arr[i+1] > … > arr[arr.length - 1] 给你由整数组成的山脉数组 arr ,返回任何满足 arr[0] < arr[1] < … arr[i - 1] < a

Fourier_xyz的博客 245

852、山脉数组的峰顶索引(简单)

class Solution { public int peakIndexInMountainArray(int[] arr) { //双指针法 int i = 0, j = arr.length - 1; while (i+1 < arr.length && arr[i] < arr[i+1]) { i++; } while (j > 0 &&am..

qq_39612954的博客 73

852.山脉数组的峰顶索引,简单易懂0ms

class Solution { public int peakIndexInMountainArray(int[] arr) { int len = arr.length; int left = 1, right = len - 1, result = 0; while(left <= right){ int mid = left + (right - left)/2; if(arr[mid] &

Split_token的博客 177

力扣每日一题:852.山脉数组的峰顶索引 喜迎收假,重拳出击....

852.山脉数组的峰顶索引 https://leetcode-cn.com/problems/peak-index-in-a-mountain-array/solution/852shan-mai-shu-zu-de-feng-ding-suo-yin-9krsr/ 难度:简单 题目: 符合下列属性的数组 arr 称为 山脉数组 : arr.length >= 3 存在 i(0 <...

清风Python 5872

#力扣 LeetCode852. 山脉数组的峰顶索引 @FDDLC

题目描述: 852. 山脉数组的峰顶索引 - 力扣(LeetCode) (leetcode-cn.com) Java代码: class Solution { public int peakIndexInMountainArray(int[] a) { for(int i=a.length-2;i>0;i--)if(a[i-1]<a[i])return i; return -1; } } Java代码二: class S..

LiuXingchang的博客 296

【算法】山脉数组的峰顶索引 & 寻找峰值元素

二分查找的本质,是在“有规律的区间”中不断缩小搜索范围。

qq_2778465975的博客 2万+

LeetCode 852. 山脉数组的峰顶索引

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 852. 山脉数组的峰顶索引,做好准备了么,那么开始吧。 🌲🌲🐴🐴

weixin_62275996的博客 1041

LeetCode 852:山脉数组的峰顶索引(二分查找) —— 题解

二分查找经典题目——山脉数组的峰顶索引

2601_96587588的博客 796
上一篇: 【简单】557. 反转字符串中的单词 III
下一篇: 二叉树的四种非递归遍历方式(前序、中序、后序、层次遍历)C++实现
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值