leetcode 162 寻找峰值

直观解法1:遍历  算法复杂度O(n)

int findPeakElement(vector<int>& nums) {int size = nums.size();//一个元素,直接返回0if(size == 1) return 0;//两个元素,返回最大的idxif(size == 2) {if(nums[0] > nums[1]) return 0;else return 1;}int max_val = nums[0];int idx = 0; int i = 0;//遍历,同时记录最大值和最大值idxfor(;i + 2 < size - 1; i++){if(nums[i] > max_val){max_val = nums[i];idx = i;}//如果遇到一个波峰,返回idxif(nums[i] < nums[i+1] && nums[i+1] > nums[i+2]) return i+1;}//遍历最后两个,记录最大值的idxif(max_val < nums[i+1]){max_val = nums[i+1];idx = i+1;}if(max_val < nums[i+2]){max_val = nums[i+2];idx = i+2;}//返回最大值的idxreturn idx;}

解法2:题目要求O(logn),那肯定是二分查找了

int findPeakElement(vector<int>& nums){//单元素,直接返回if(nums.size() == 1) return 0;int l = 0, r = nums.size()-1, mid;while(l < r){mid = (l + r) / 2;// r-l=1的情况if(mid == l) return nums[mid] > nums[r] ? mid : r;if(mid == r) return nums[mid] > nums[l] ? mid : l;//波峰if(nums[mid] > nums[mid-1] && nums[mid] > nums[mid+1])return mid;if(nums[mid] < nums[mid-1]){r = mid - 1;//这个不能少,我们只需要判断大的一侧就行continue;}if(nums[mid] < nums[mid+1]){l = mid + 1;}}return (l+r)/2;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40664.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

科普文:Linux服务器性能调优之CPU调度策略和可调参数

概叙 进程 进程是操作系统虚拟出来的概念&#xff0c;用来组织计算机中的任务。计算机的核心是CPU&#xff0c;它承担了所有的计算任务&#xff1b;而操作系统是计算机的管理者&#xff0c;它负责任务的调度、资源的分配和管理&#xff0c;统领整个计算机硬件&#xff1b;应用…

网络编程:UDP编程笔记

1.字节序的概念和转换 小端格式: 低位字节数据存储在低地址 大端格式: 高位字节数据存储在低地址 在主机上时为小端存储,在网络上时为大端,所以接收到数据时,要转为小端口 如下图: #include <arpa/inet.h> 发送者调用的函数: uint32_t htonl(uint32_t hostlong); //转…

【信息学奥赛】CSP-J/S初赛06 算法基础及时间/空间复杂度等问题

本专栏&#x1f449;CSP-J/S初赛内容主要讲解信息学奥赛的初赛内容&#xff0c;包含计算机基础、初赛常考的C程序和算法以及数据结构&#xff0c;并收集了近年真题以作参考。 如果你想参加信息学奥赛&#xff0c;但之前没有太多C基础&#xff0c;请点击&#x1f449;专栏&#…

软件测试面试题:中间件MQ(消息队列)的优缺点

优点&#xff1a; 解耦性&#xff1a;比如在一个电商平台中&#xff0c;用户下单后&#xff0c;订单系统需要通知库存系统进行扣减。如果直接调用&#xff0c;两个系统就高度耦合。使用MQ&#xff0c;订单系统只需发送一个消息到队列&#xff0c;库存系统订阅这个消息进行处理&…

AI与学术的交响:ChatGPT辅助下的实验设计新篇章

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 在学术研究中&#xff0c;实验设计是确保研究质量和结果可信度的关键环节。这篇文章我们将为大家介绍如何利用ChatGPT辅助完成学术论文的实验设计&#xff0c;通过提供灵感、优化实验步…

VUE Pinia状态持久化

效果 实现方法 插件&#xff1a;pinia-plugin-persistedstate 链接地址 具体操作 安装 npm i pinia-plugin-persistedstate 添加到 pinia 实例上 import { createPinia } from pinia import piniaPluginPersistedstate from pinia-plugin-persistedstateconst pinia cre…

K8s 集群(kubeadm) CA 证书过期解决方案

Author&#xff1a;Arsen Date&#xff1a;2024/07/04 目录 一、现象描述二、解决方案三、集群验证 一、现象描述 之前有篇文章《K8s Token 过期解决方案&#xff08;Kubeadm&#xff09;》提到了默认生成的 Token 有效期只有 24 小时&#xff0c;过期后 Token 将不可用&#…

B端系统设计风格简洁与高效的完美融合

B端系统设计风格简洁与高效的完美融合

网工内推 | 厂商驻场云运维,最高13k,Base北京

01 华三&#xff08;外包弧聚&#xff09; &#x1f537;招聘岗位&#xff1a;中级桌面云虚拟化驻场工程师 &#x1f537;岗位职责&#xff1a; 1、要熟悉H3C CAS,H3C-worksapce云桌面平台、超融合原理、部署、运维&#xff1b; 2、了解虚拟化平台vmware。 &#x1f537;任职…

CIDEr(Consensus-based Image Description Evaluation)的计算

CIDEr&#xff08;Consensus-based Image Description Evaluation&#xff09; 论文原文 CIDEr: Consensus-based Image Description Evaluation CIDEr&#xff08;Consensus-based Image Description Evaluation&#xff09;是一种用于自动评估图像描述&#xff08;image ca…

基于java语言+ Vue+ElementUI+ MySQL8.0.36数字化产科管理平台源码,妇幼信息化整体解决方案

基于java语言 VueElementUI MySQL8.0.36数字化产科管理平台源码&#xff0c;妇幼信息化整体解决方案 数字化产科管理平台是为医院产科量身定制的信息管理系统。它管理了孕妇从怀孕开始到生产结束42天一系列医院保健服务信息。该系统由门诊系统、住院系统、数据统计模块三部分组…

web零碎知识

&nbsp 在html文件中 连续的空格会被认为是一个空格 所以我们需要使用&nbsp来代表空格 &#x3000 把这个当成tab键来使用 我们可以引入js文件&#xff0c;就可以减少html文件的长度。 首先创建一个js文件夹&#xff0c;然后在js文件夹中创建一个&#xff0c;后缀…

数据库表导出到excel:前置知识4 业务和效果

清单配置页面(就是配置那些用户可以下载那些表内容,清单下载实际就是指数据库表下载,清单就是对应的表) 比如:导出一个atom_base_info表数据(数据多) atom_base_info的数据结构 下面这个配置审核状态一类不问&#xff0c;直接到清单下载页面 发起自己想下载的清单(先异步把数…

FreeRTOS之队列上锁和解锁(详解)

这篇文章将记录我学习实时操作系统FreeRTOS的队列上锁和解锁的知识&#xff0c;在此分享给大家&#xff0c;希望我的分享能给你带来不一样的收获&#xff01; 目录 一、简介 二、队列上锁函数prvLockQueue&#xff08;&#xff09; 1、函数初探 2、应用示例 三、队列解锁函…

第8天:模块和包

学习目标 理解Python模块和包的概念学习如何创建和导入模块掌握标准库模块的使用学习如何使用包组织代码 学习内容 1. 模块的概念 模块是一个包含Python代码的文件&#xff0c;模块可以包含函数、类和变量&#xff0c;也可以包含可执行的代码。模块使你能够组织和重用代码。…

如何对关键字段进行脱敏(二)如何在某些查询中取消脱敏?

要在使用Mybatis-plus进行数据库查询时准确区分哪些查询需要脱敏,哪些不需要,同时保留获取精确手机号码的能力,可以采用以下方案: 自定义注解标记 创建一个自定义注解,用于标记不需要脱敏的查询方法: Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public…

TCP/IP模型每层内容和传输单位

TCP/IP&#xff08;Transmission Control Protocol/Internet Protocol&#xff09;模型是一种用于描述网络通信中协议层次结构的模型&#xff0c;它最初被设计用来描述互联网的协议栈。TCP/IP模型通常分为四层&#xff0c;自下而上分别为&#xff1a; 网络接入层&#xff08;Ne…

js之模糊搜索

多的不说 少的不唠 直接上代码

使用el-form自定义校验的同时使用v-if/v-show引起的校验问题

有时候需要根据不同的条件来回显具体的内容&#xff0c;这时候就会用到v-if/v-show&#xff0c;此时表单的校验就可能会出现一些问题。 比如&#xff1a;使用v-if的时候&#xff0c;明明切换到了另一个条件&#xff0c;但是对应元素的表单校验却没有生效&#xff1b;使用v-show…

警翼警用记录仪视频格式化后恢复方法

警翼是国内较大的一家警用记录仪厂商&#xff0c;此品牌我们恢复过很多&#xff0c;此次遇到的是一个典型的误格式化的情况&#xff0c;我们来看看误格式化后如何恢复。 故障存储: 32G卡/fat32 故障现象: 客户提供的信息是在交接设备后没有及时备份而做出了初始化设备的操…