力扣hot100:153. 寻找旋转排序数组中的最小值(二分的理解)

b9554e68da5e4cf2a5b41956e76cc017.png

        由力扣hot100:33. 搜索旋转排序数组(二分的理解)-CSDN博客,我们知道二分实际上就是找到一个策略将区间“均分”。对于旋转数组问题,在任何位置分开两个区间,如果原区间不是顺序的,分开后必然有一个区间是顺序的,一个区间是非顺序的,我们知道最小值必然是在非顺序的区间里。因此我们这里二分,目的是让区间变小使得答案在[left,right]区间里。我们需要特别注意二分中的边界条件,比如下面考虑到的,整个区间是顺序的,以及如何精确的找到非顺序区间的答案区间。

        当nums[left]>nums[mid]时,顺序的区间一定是[mid+1,right],而不是[mid,right],因此我们是right=mid,而不是right=mid-1!并且right=mid算不算二分? 实际上也是算的!只不过你可以发现问题就出现在当元素只有一个时仅仅将{left=mid,right=mid}会导致死循环,两个元素是right=mid仍然可以减小区间。然而我们这里在只有一个元素时,是可以找到答案的,因此这里仅仅right=mid也是一个可以做到二分的方法。

class Solution {
public:
    int findMin(vector<int>& nums) {//答案一定在非顺序区间里
        int left=0,right=nums.size()-1;
        while(left<=right){
            int mid=(left+right)>>1;
            if(nums[left]<=nums[mid]){//左边是顺序的
                if(nums[mid]<=nums[right]){//右边也是顺序的,说明整个区间是顺序的
                    return nums[left];
                }else{//右边不是顺序的,答案在右边哦,由于[left,mid]必定是整个区间顺序,mid必然不是答案,因此答案必然在[mid+1,right]
                    left=mid+1;
                }
            }else{//左边不是顺序的,右边[mid+1,right]一定是顺序的,因此答案必然在[left,mid]中
                right=mid;
            }
        }
        return 0;
    }
};

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

15届蓝桥杯备赛(2)

文章目录 刷题笔记(2)二分查找在排序数组中查找元素的第一个和最后一个位置寻找旋转排序数组中的最小值搜索旋转排序数组 链表反转链表反转链表II 二叉树相同的树对称二叉树平衡二叉树二叉树的右视图验证二叉搜索树二叉树的最近公共祖先二叉搜索树的最近公共祖先二叉树层序遍历…

linux 安装/升级 svn

文章目录 下载最新版本安装包安装 下载最新版本安装包 wget https://dlcdn.apache.org/subversion/subversion-1.14.3.tar.gz tar -zxf subversion-1.14.3.tar.gz cd subversion-1.14.3 安装 ./configure 报错&#xff0c;提示缺少 apr-util 库&#xff0c;有的环境可能 apr 库…

大模型日报3月19日

资讯 研究 ICLR 2024 | 连续学习不怕丢西瓜捡芝麻&#xff0c;神经形态方法保护旧知识 https://mp.weixin.qq.com/s/-inS55h-MSUX51Kj061big 来自北京大学林宙辰教授团队的研究者们提出了一种新的基于赫布学习的正交投影的连续学习方法&#xff0c;其通过神经网络的横向连接…

锂电池寿命预测 | Matlab基于ALO-SVR蚁狮优化支持向量回归的锂离子电池剩余寿命预测

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 锂电池寿命预测 | Matlab基于ALO-SVR蚁狮优化支持向量回归的锂离子电池剩余寿命预测 基于蚁狮优化和支持向量回归的锂离子电池剩余寿命预测: 1、提取NASA数据集的电池容量&#xff0c;以历史容量作为输入&#xff0c;…

docker实践教程,nginx中使用数据卷映射修改前端网页(一)

小白专用docker教程&#xff0c;图文介绍要怎么在docker中使用nginx修改配置前端网页 docker基础 Docker Hub (https://hub.docker.com) Docker 官网&#xff1a;https://www.docker.com 不懂docker的搭配菜鸟教程食用更佳&#xff0c;个人觉得菜鸟教程说得太简单了&#xff…

3500/22M 288055-01 瞬态数据接口模块 本特利内华达机械状态监控

3500/22M瞬态数据接口是接口 3500监控系统和兼容 软件&#xff08;系统1状态监控和诊断 软件和3500系统配置软件&#xff09;。TDI 结合了3500/20框架接口模块的功能 &#xff08;RIM&#xff09;具有通信数据收集功能 处理器&#xff0c;如TDXnet。 TDI位于与电源相邻的插槽中…

数学建模综合评价模型与决策方法

评价方法主要分为两类&#xff0c;其主要区别在确定权重的方法上 一类是主观赋权法&#xff0c;多次采取综合资讯评分确定权重&#xff0c;如综合指数法&#xff0c;模糊综合评判法&#xff0c;层次评判法&#xff0c;功效系数法等 另一类是客观赋权法&#xff0c;根据各指标…

zabbix6.4报错问题汇总:zabbix server无法连接zabbix agent主机

在配置zabbix server连接本机agent时报错&#xff1a; Get value from agent failed: cannot connect to[[xxx.xxx.xxx.xxx]:10050]: [111] Connection refused 检查10050端口是否开放&#xff0c;以下三种方式都可以查看端口是否开放。 1.nc -zv <服务器IP> <端口号…

【linux】环境变量(进程二)

这里写目录标题 命令行参数&#xff1a;环境变量&#xff1a; 命令行参数&#xff1a; 不谈命令行参数就谈环境变量就是耍流氓。 相信我们在C语言阶段都在main函数里见过参数。 例如int main(int argc, char* argv[]) 这是什么东西呢&#xff1f; 话不多说我们直接打印一下看…

生信软件13 - 基于sambamba 窗口reads计数和平均覆盖度统计

Sambamba是一个高性能&#xff0c;高度并行&#xff0c;健壮和快速的工具&#xff08;和库&#xff09;&#xff0c;用D编程语言编写&#xff0c;用于处理SAM和BAM文件。与samtools相比&#xff0c;其优势在于并行BAM读和写。 conda安装 conda install sambamba -y# github: …

使用WordPress在US Domain Center上建立摄影网站的详细教程

第一部分&#xff1a;介绍摄影网站 摄影网站是摄影师展示作品、分享经验、提供服务的在线平台。在摄影网站上&#xff0c;摄影师可以展示自己的摄影作品、发布摄影日志、接受客户预约等。使用WordPress搭建摄影网站具有灵活性和可扩展性&#xff0c;可以通过选择适合的主题和插…

热插拔技术详解(中)

3、热插拔导致的静电问题及其防治 &#xff08;1&#xff09;静电产生 物质都是由分子构成&#xff0c;分子是由原子构成&#xff0c;原子由带负电荷的电子和带正电荷的质子构成。在正常状况下&#xff0c;一个原子的质子数与电子数量相同&#xff0c;正负平衡&#xff0c;所以…

Java学习笔记(17)

集合进阶 单列集合 Collection List set Add clear remove contains isempty size Add方法可能也会添加失败 同理&#xff0c;可能删除失败 Contains细节 为什么要重写equals&#xff1f; 因为contains底层用的是object类中的equals方法&#xff0c;比较的是地址值&#xf…

HarmonyOS系统开发ArkTS常用组件文本输入及参数

TextInput文本输入组件&#xff0c;用于接收用户输入的文本内容。 1、TextInput组件的参数 TextInput(value?:{placeholder?: string|Resource , text?: string|Resource}) placeholder属性用于设置无输入时的提示文本text用于设置输入框当前的文本内容 Entry Component st…

PieCloudDB Database 3.0 正式发布丨数仓虚拟化流转数据要素

3月14日&#xff0c;拓数派 2024 年度战略暨新产品发布会在上海国际会议中心成功举行。本次大会的主题为「数仓虚拟化 流转数据要素」&#xff0c;吸引了众多业内资深专家和合作伙伴参与&#xff0c;共同探讨数据要素流转和数字技术创新等热门话题。 拓数派创始人兼 CEO 冯雷&…

ArmSoM-Sige RK3588开发板使用手册

Sige7 使用手册&#xff0c;帮助用户了解Sige7的基本使用和需要的准备工作。 当您拿到产品的时候&#xff0c;您需要知道它的型号以及硬件版本&#xff0c;这些信息都可以在板子上的丝印找到。我们会尽可能详细地向您介绍产品的信息。 入门准备​ 在开始使用 ArmSoM-Sige7 之…

探索雨云:AMD EPYC处理器助力香港三网直连

在数字化时代&#xff0c;云计算和数据传输速度成为了商业和科技发展的关键。香港作为国际金融中心和亚太地区的数字枢纽&#xff0c;其网络基础设施的发展备受瞩目。而雨云&#xff08;RainCloud&#xff09;作为一家致力于提供高效稳定云计算服务的领先企业&#xff0c;近日引…

yolov9目标检测可视化图形界面GUI源码

该系统是由微智启软件工作室基于yolov9pyside6开发的目标检测可视化界面系统 运行环境&#xff1a; window python3.8 安装依赖后&#xff0c;运行源码目录下的wzq.py启动 程序提供了ui源文件&#xff0c;可以拖动到Qt编辑器修改样式&#xff0c;然后通过pyside6把ui转成python…

全流程WRF高精度气象模拟技术及在地学领域中的实践应用

随着生态文明建设和“碳中和”战略的持续推进&#xff0c;我国及全球气候变化及应对是政府、科学界及商业界关注的焦点。气候是多个领域&#xff08;生态、水资源、风资源及碳中和等问题&#xff09;的主要驱动因素&#xff0c;合理认知气候变化有利于解释生态环境变化机理及过…

2024跨境品牌出海指南:9大关键要素与注意事项

随着全球经济的不断发展&#xff0c;跨境电商成为品牌拓展国际市场的重要途径。然而&#xff0c;随之而来的是更为激烈的竞争和日益变化的市场环境。2024年&#xff0c;跨境卖家若想成功出海&#xff0c;必须在众多竞争者中脱颖而出。本文Nox聚星将和大家探讨2024年品牌出海过程…