【题解】寻找峰值

news/2024/11/17 17:42:39/

题目链接:寻找峰值

解题思路1:二分法

首先题目保证了i=-1和i=n时值都为负无穷,所以上坡一定有波峰,下坡不一定有波峰

代码如下:

    int findPeakElement(vector<int>& nums) {int left = 0;int right = nums.size() - 1;while(left < right){int mid = (left + right) / 2;//右边往下,不一定有波峰if(nums[mid] > nums[mid + 1])right = mid;//右边是往上,一定有波峰else left = mid + 1;}return right;}

解题思路2:找最大值

根据题目的意思,一定存在波峰,毫无疑问,最大值一定是波峰

代码如下:

    int findPeakElement(vector<int>& nums) {int idx = 0;for(int i=1; i<nums.size(); ++i){if(nums[i] > nums[idx]){idx = i;}}return idx;}

http://www.ppmy.cn/news/1018070.html

相关文章

信道复用技术

信道划分介质访问控制将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来&#xff0c;把时域和频域资源合理地分配给网络上的设备 多路复用&#xff1a;就是将多个信号组合在一条物理信道上进行传输&#xff0c;使多个计算机或终端设备共享信道资源&#xff0c…

LeetCode_动态规划_中等_1749.任意子数组和的绝对值的最大值

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给你一个整数数组 nums 。一个子数组 [numsl, numsl1, …, numsr-1, numsr] 的 和的绝对值 为 abs(numsl numsl1 … numsr-1 numsr) 。请你找出 nums 中和的绝对值 最大的任意子数组&#xff08;可能为空…

分辨率 and 媒体查询 - 1

电脑设置那里的 “1920 * 1080” 表示分辨率的宽、高 “1920” 是宽度&#xff0c;表示屏幕或显示器的水平像素数量&#xff0c; “1080” 是高度&#xff0c;表示屏幕或显示器的垂直像素数量 通常&#xff0c;分辨率以宽度 x 高度的形式表示&#xff0c;宽度在前&#xff0c…

Rocketmq 5.0 任意时间定时消息(RIP-43) 原理详解 源码解析

1. 背景 1.1 概念和应用场景 延迟消息&#xff08;定时消息&#xff09;即消息到达消息队列服务端后不会马上投递&#xff0c;而是到达某个时间才投递给消费者。它在在当前的互联网环境中有非常大的需求。 例如电商/网约车等业务中都会出现的订单场景&#xff0c;客户下单后…

【Express.js】集成SocketIO

集成SocketIO 本节我们介绍在如何在 express 中集成 Socket.IO Socket.IO 算是 WebSocket 的一个超集&#xff0c;进行了一些封装和拓展。 准备工作 创建一个 express.js 项目&#xff08;本文基于evp-express-cli&#xff09;安装socket.io.js: npm i socket.io创建代理 …

SHRM这个证书,对人力资源有什么用处?

从2018年开始&#xff0c;人力资源专业人士可以追求无数的证书。然而&#xff0c;我们还没有看到任何研究或硬数据来帮助人力资源专业人士确定哪些特定的人力资源证书值得追求。例如&#xff0c;人们可以期望从每项认证中获得哪些特定技能和能力&#xff1f;哪一个会给人力资源…

前端实习周记第三周周记

第二周总结 第二周主要是做了一些PC端细节内容。大的地方改的不多&#xff0c;但是小的细节蛮多。 值得一提的是&#xff0c;第二周做的微信小程序&#xff0c;改了很多逻辑。改逻辑需要与后端进行联调&#xff0c;收获很大&#xff0c;思路也愈发清楚。 记录做了什么是好习…

java 知识点

基本语法&#xff1a; 变量和数据类型控制流语句&#xff08;if、else、switch&#xff09;循环语句&#xff08;for、while、do-while&#xff09;面向对象编程&#xff08;OOP&#xff09;&#xff1a; 类和对象 封装、继承和多态性构造方法和析构方法抽象类和接口 异常处…