山脉数组的峰顶索引 ---- 二分查找
题目链接
题目:

分析:
- 我们很明显, 可以从峰值位置将数组分成两段, 具有"二段性", 所以可以用二分查找
- 因为arr是山峰数组, 不存在相等的情况
- 如果arr[mid] > arr[mid + 1], 说明mid的位置可能是峰值, 移动right = mid
- 如果arr[mid] < arr[mid + 1], 说明mid的位置一定不是峰值, 移动left = mid + 1
- 所以可以匹配二分查找中的模版二, 此时,mid = left + (right - left) /2
- 因为没有等于的情况, 所以模版三也适用:
- 如果arr[mid] > arr[mid - 1], 说明mid的位置可能是峰值, 移动left = mid
- 如果arr[mid] < arr[mid - 1], 说明mid的位置一定不是峰值, 移动right = mid - 1
- 所以可以匹配二分查找中的模版三, 此时,mid = left + (right - left + 1) /2
代码:
class Solution {public int peakIndexInMountainArray(int[] arr) {int left = 1;int right = arr.length-2;while(left < right){///int mid = left + (right - left) / 2;//if(arr[mid] > arr[mid + 1]) right = mid;//else left = mid + 1 ;int mid = left + (right - left + 1) / 2;if(arr[mid] > arr[mid - 1]) left = mid;else right = mid - 1;}return left;}
}
相关文章:
山脉数组的峰顶索引 ---- 二分查找
题目链接 题目: 分析: 我们很明显, 可以从峰值位置将数组分成两段, 具有"二段性", 所以可以用二分查找因为arr是山峰数组, 不存在相等的情况如果arr[mid] > arr[mid 1], 说明mid的位置可能是峰值, 移动right mid如果arr[mid] < arr[mid 1], 说明mid的位置…...
【简单介绍下7-Zip,什么是7-Zip?】
🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…...
SCSS基本使用:构建高效、可维护的CSS架构
SCSS基本使用:构建高效、可维护的CSS架构 SCSS(Sassy CSS)是一个流行的CSS预处理器,它扩展了CSS的功能,提供了变量、嵌套规则、混合(Mixins)、函数等强大的编程特性,使得开发者能够编…...
allegro 无法删除Xnet
allegro 无法删除Xnet Orcad中打开Constraint Manager之后,再生成网表,导入PCB后就会出现一堆Xnet网络。无法去除Xnet。 解决办法 在原理图ORCAD中, 1、打开Edit Object properties 2、选择Filter by:Capture 3、点击New Property 4、设置…...
2024年甘肃特岗教师招聘报名流程,速速查收哦!
2024年甘肃特岗教师招聘报名流程,速速查收哦!...
【错误解决】使用HuggingFaceInstructEmbeddings时的一个错误
起因:使用huggingface构建一个问答程序时出现的问题。 错误内容: 分析: 查看代码发现,HuggingFaceInstructEmbeddings和sentence-transformers模块版本不兼容导致。 可以明显看到方法参数不同。 解决: 安装sentenc…...
C++中的四种类型转换运算符
隐式类型转换是安全的,显式类型转换是有风险的,C语言之所以增加强制类型转换的语法,就是为了强调风险,让程序员意识到自己在做什么。但是,这种强调风险的方式还是比较粗放,粒度比较大,它并没有表…...
k8s 1.28.10 浏览器访问6443查看api,需要证书
添加证书 使用client-certificate-data和client-key-data生成一个p12文件 1.生成client-certificate-data grep client-certificate-data ~/.kube/config | head -n 1 | awk {print $2} | base64 -d >> kubecfg.crt2.生成client-key-data grep client-key-data ~/.kub…...
新火种AI|复旦团队在“冷冻人脑”领域获得重大进展!人工智能是否会对此形成助力?
在低温医学领域,“冷冻人脑”技术的研究和突破既是重点,也是难点。因为这项技术关乎着人类是否可以取得一个令人瞩目的突破——人类的生命是否能够得到延续。 早几年,诸如“利用人体冷冻技术将身患绝症的病人保存十几年,几十年…...
echarts 散点图修改散点图中图形形状颜色大小
话不多说,直接上代码 let option {color:[xxx, xxx, xxx, xxx], //直接设置color可修改图形颜色title: {text: 散点图图形,},tooltip: {trigger: axis,axisPointer: {type: cross}},legend: {top: 2,right:2,itemWidth: 10,itemHeight: 10,textStyle:{fontSize:14}…...
SpringBoot3.x + JDK21 整合 Mybatis-Plus
前言 SpringBoot3.0 开始最低要求 Java 17,虽然目前最新的版本为 JDK22,但是在官网上看到 JDK23 在今年9月又要发布了,感觉这 JDK 也有点太过于给力了 所以我们选择用目前的 LTS 版本 JDK21 就好了,不用追求最新的 springboot 版…...
Java类和对象(五)—— 抽象类、接口、Object类和内部类
抽象类 在继承体系下,父类有些方法可能是要被重写的,如果我们事先就知道某些方法需要重写的话,我们可以不用在父类里面具体实现这个方法,这时候我们会用到抽象方法,这时候我们会用到关键字abstract关键字来修饰 publ…...
图像上下文学习|多模态基础模型中的多镜头情境学习
【原文】众所周知,大型语言模型在小样本上下文学习(ICL)方面非常有效。多模态基础模型的最新进展实现了前所未有的长上下文窗口,为探索其执行 ICL 的能力提供了机会,并提供了更多演示示例。在这项工作中,我…...
汇编:函数以及函数参数传递
汇编语言中的函数(或过程)是指一段可以被调用和执行的代码块;它们用于组织和重用代码,并使程序结构更加清晰;由于汇编语言没有高层次语言的语法糖,编写和调用函数涉及直接的堆栈操作和寄存器管理࿱…...
linux-ftp服务器搭建简介
安装ftp服务器: vsftpd全称为“very secure FTP daemon”,是一个在UNIX类操作系统上运行的服务,可以提供高安全性的FTP服务。 vsftpd是一个免费和开放源代码的FTP服务器软件,它提供了许多其他FTP服务器不支持的特性,例…...
二十一、openlayers官网示例Custom Controls解析——自定义控件扩展Control类
官网demo地址: Custom Controls 这个示例讲的是如何自定义控件 首先创建了一个新的类继承了原本的Control,新增了一个button元素,然后调用了super方法将参数传给了父类。 const button document.createElement("button");button.…...
【博主推荐】HTML5实现520表白、情人节表白模板源码
文章目录 1.设计来源1.1 表白首页1.2 甜蜜瞬间11.3 甜蜜瞬间21.4 甜蜜瞬间31.5 甜蜜瞬间41.6 甜蜜瞬间51.7 甜蜜瞬间61.8 永久珍藏 2.效果和源码2.1 页面动态效果2.2 页面源代码2.3 源码目录2.4 更多为爱表白源码 3.源码下载地址 作者:xcLeigh 文章地址:…...
【YOLOv5/v7改进系列】替换激活函数为SiLU、ReLU、LeakyReLU、FReLU、PReLU、Hardswish、Mish、ELU等
一、导言 激活函数在目标检测中的作用至关重要,它们主要服务于以下几个关键目的: 引入非线性:神经网络的基本构建块(如卷积层、全连接层等)本质上是线性变换,而激活函数通过引入非线性,使得网络…...
修改MySQL root用户密码
ALTER USER ‘root’‘localhost’ IDENTIFIED BY ‘new_password’; ALTER USER ‘root’‘%’ IDENTIFIED BY ‘new_password’; 》 SET GLOBAL read_only OFF; select * from mysql.user;...
力扣刷题---409. 最长回文串【简单】
题目描述 给定一个包含大写字母和小写字母的字符串 s ,返回 通过这些字母构造成的 最长的回文串 。 在构造过程中,请注意 区分大小写 。比如 “Aa” 不能当做一个回文字符串。 示例 1: 输入:s “abccccdd” 输出:7 解释: 我们可以构造的最长的回文串…...
机器学习模型评估中的构念效度:超越基准测试分数的科学推断
1. 项目概述与核心问题在机器学习的日常研究和工程实践中,我们每天都在和各种各样的基准测试(Benchmark)打交道。无论是为了比较新提出的ResNet变体在ImageNet上的Top-1准确率,还是评估一个大型语言模型在MMLU上的常识推理能力&am…...
SkillVLA:通过技能复用应对双-臂操纵中的组合多样性
26年3月来自新加坡国立、北京中关村学院、上海创新研究院、上海AI实验室、上海交大和复旦的论文“SkillVLA: Tackling Combinatorial Diversity in Dual-Arm Manipulation via Skill Reuse”。 视觉-语言-动作(VLA)模型近期取得的进展,已充分…...
为什么92%的DeepSeek二次开发团队在6个月内遭遇交付延迟?——基于17个真实项目的技术债务归因分析
更多请点击: https://intelliparadigm.com 第一章:为什么92%的DeepSeek二次开发团队在6个月内遭遇交付延迟?——基于17个真实项目的技术债务归因分析 在对17个采用DeepSeek-R1/VL模型开展定制化开发的工业级项目进行回溯审计后,我…...
WPF虚拟桌宠组件:可嵌入、高性能、工程化UI生命体
1. 这不是“桌面宠物”,而是一个可嵌入的WPF UI组件化生命体你可能在Windows XP时代见过那只晃着尾巴、偶尔打哈欠的3D小猫,也可能在Win10系统托盘里点开过一个会眨眼的像素狐狸——但那些是独立进程、是系统级小工具、是“看一眼就关掉”的轻量娱乐。而…...
Windows终极PDF处理工具:3步免费安装Poppler完整指南
Windows终极PDF处理工具:3步免费安装Poppler完整指南 【免费下载链接】poppler-windows Download Poppler binaries packaged for Windows with dependencies 项目地址: https://gitcode.com/gh_mirrors/po/poppler-windows 你是否曾经为在Windows上处理PDF文…...
超维计算(HDC)原理与ScalableHD架构优化实践
1. 超维计算(HDC)基础解析超维计算(Hyperdimensional Computing, HDC)是一种受大脑信息处理机制启发的计算范式,其核心思想是用高维随机向量(通常称为超向量或HV)来表示和处理信息。与传统神经网…...
DLA功耗优化验证:tegrastats实战指南
重磅预告:本专栏将独家连载系列丛书《智能体视觉技术与应用》部分精华内容,该书是世界首套系统阐述“因式智能体”视觉理论与实践的专著,特邀美国 TypeOne 公司首席科学家、斯坦福大学博士 Bohan 担任技术顾问。Bohan先生师从美国三院院士、“…...
OpenTK 3.3.3实现3D旋转立方体:C# OpenGL入门实战
1. 为什么一个旋转立方体是3D图形编程真正的“Hello World” 很多人第一次接触OpenGL或现代图形API时,总想直接上手做粒子系统、PBR渲染或者实时阴影——结果卡在顶点缓冲对象(VBO)绑定失败、着色器编译报错、甚至窗口根本没显示出来。我带过…...
初创公司如何通过Taotoken快速为产品原型注入多种AI能力
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司如何通过Taotoken快速为产品原型注入多种AI能力 对于初创公司而言,资源有限、时间紧迫是常态。产品原型的快速…...
tree 命令
tree 命令 tree 命令用于以树状图的形式列出目录下的文件。 1 Linux 安装 tree 命令 # CentOS sudo yum -y install tree # Ubuntu sudo apt -y install tree2 Windows 安装 tree 命令 Windows 10 以上 CMD 和 PowerShell 已经内置了 tree 命令,可以直接使用。 …...
