Leetcode154. Find Minimum in Rotated Sorted Array II
旋转数组找最小,这次值可以重复
不妨假设你已经做了上一题,题解
上一题的方法1肯定是用不了了,因为不再能完全分成2个不同的部分
所以我们沿着方法2走
如果 > n u m s [ r ] >nums[r] >nums[r],我们依然可以找右半边
如果 n u m s [ l ] < n u m s [ m i d ] < n u m s [ r ] nums[l] < nums[mid] < nums[r] nums[l]<nums[mid]<nums[r],那可以直接返回 n u m s [ l ] nums[l] nums[l]
只能是情况1,不可能是情况2和3

现在只剩下 n u m s [ m i d ] ≤ n u m s [ r ] , n u m s [ m i d ] ≤ n u m s [ l ] nums[mid] \le nums[r], nums[mid] \le nums[l] nums[mid]≤nums[r],nums[mid]≤nums[l]

[ 3 , 3 , 3 , 3 , 1 , 3 , 3 ] n u m s [ l ] = n u m s [ m i d ] = n u m s [ r ] = 3 [3, 3, 3, 3, 1, 3, 3]\ nums[l] = nums[mid] =nums[r] =3 [3,3,3,3,1,3,3] nums[l]=nums[mid]=nums[r]=3
[ 3 , 3 , 1 , 3 , 3 , 3 , 3 ] n u m s [ l ] = n u m s [ m i d ] = n u m s [ r ] = 3 ; [3, 3, 1, 3, 3, 3, 3]\ nums[l] = nums[mid] =nums[r] =3; [3,3,1,3,3,3,3] nums[l]=nums[mid]=nums[r]=3;
不能直接排除一半,只能从右往左
那为啥不能是从左往右呢,考虑 [ 0 , 1 ] [0,1] [0,1]
因为总体是一个单调递增的感觉,从左往右可能g了
class Solution {
public:int findMin(vector<int>& nums) {int l = 0, r = nums.size() - 1;while(l < r){int mid = l + (r - l) / 2;if(nums[mid] > nums[r]){l = mid + 1;}else if(nums[l] < nums[mid]){return nums[l];}else{ // nums[l] <= nums[mid] <= nums[r]// [3, 3, 3, 3, 1, 3, 3] nums[l] = nums[mid] =nums[r] =3;// [3, 3, 1, 3, 3, 3, 3] nums[l] = nums[mid] =nums[r] =3;// cannot decide left or right--r;}}return nums[l];}
};
相关文章:
Leetcode154. Find Minimum in Rotated Sorted Array II
旋转数组找最小,这次值可以重复 不妨假设你已经做了上一题,题解 上一题的方法1肯定是用不了了,因为不再能完全分成2个不同的部分 所以我们沿着方法2走 如果 > n u m s [ r ] >nums[r] >nums[r],我们依然可以找右半边 …...
【分析思路】测试数据分析思路
测试数据分析思路: 性能数据 对性能测试数据进行分析时,可以从以下几个维度进行比较: 响应时间(Response Time):分析每一天的响应时间数据,可以查看系统在不同时间段的性能表现,是…...
链表的实现(文末附完整代码)
链表的概念及结构 链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 我们在上一篇文章所学习的顺序表是连续存储的 例如: 顺序表就好比火车上的一排座位,是连续的 而链表就好比是火车…...
asp.net core 获取服务实例的几种方式
在ASP.NET Core中,我们可以使用以下几种方式来获取服务: 构造函数注入(Constructor Injection):在需要使用服务的类的构造函数中声明对应的服务类型参数,ASP.NET Core会自动将对应的服务实例注入进来。例如…...
指标体系:洞察变化的原因
一、指标概述 指标体系是指根据运营目标,整理出可以正确和准确反映业务运营特点的多个指标,并根据指标间的联系形成有机组合。 指标体系业务意义极强,所有指标体系都是为特定的业务经营目的而设计的。指标体系的设计应服从于这种目的&#x…...
Dell戴尔灵越Inspiron 7700 AIO一体机电脑原厂预装Windows10系统
链接:https://pan.baidu.com/s/1-slgR9t4Df_eko0Y6xaeyw?pwdmk0p 提取码:mk0p 灵越7700一体机原装出厂系统自带声卡驱动、无线网卡驱动、面部识别等所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、MyDell等预装程序 由于时间关系,…...
系统架构主题之九:软件设计模式及其应用
1 关于设计模式 设计模式是什么?个人理解,其是软件开发中对一些通用问题整理的解决方案,是经过经验总结所提炼的相对较为抽象的,有一定适应性和变化性的“套路”。这里借用了“套路”这个不太好听的词,但目的却是为了…...
Spring IoC注解式开发
2023.11.11 注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。 负责声明Bean的注解,常见的包括四个: ComponentControllerServiceRepository 通过源码可以发现,Controller、Service、Repository这三个注解都是Component注解的别名…...
智能一体化管网水位监测仪怎么样?
城市排水管网是城市正常运行的关键环节,这是地上和地下通道的连接点,一旦出现问题便会影响城市生命线建设的工程进展。在复杂的地下管道内想要了解水位数据,对于政府部门来讲是一个管理难题。如果可以采取智能产品在其中发挥作用,…...
个人网厅——销户
目录 需求文档 公积金销户类 controller层 service层 service层实现类 1.验证 (个人账户) 2.提交(添加) controller层 service层 service层实现类 3.分页查询 controller层 service层 service层实现类 4. 详情查询…...
通过创建自定义标签来扩展HTML
使用HTML时,例如,使用<b>标记显示粗体文本。 如果需要列表,则对每个列表项使用<ul>标记及其子标记<li> 。 标签由浏览器解释,并与CSS一起确定网页内容的显示方式以及部分内容的行为。 有时,仅使用一…...
Nacos热更新
Nacos热更新 相比其他注册中心,Nacos的优势之一在于热更新。 热更新,就是不需要重启服务,就能够更新配置。 nacos配置中心 首先,需要搭建 Nacos,详情见: https://www.cnblogs.com/expiator/p/17392549.h…...
CSS3 中 transition 和 animation 的属性分别有哪些
Transition 属性: transition 属性用于定义元素在状态改变时从一个样式转换到另一个样式的过渡效果。它包含以下几个属性: • transition-property:指定过渡效果应用的 CSS 属性名称,多个属性可以用逗号分隔。 •…...
【狂神说Java】Nginx详解
✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :狂神说Java 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台,永远…...
【第六章】软件设计师 之 数据结构与算法基础
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 备考资料导航 软考好处:软考的…...
Git基本概念和使用方式
Git 是一种版本控制系统,用于管理文件版本的变化。以下是其基本概念和使用方式: 仓库(repository):Git 存储代码的地方,可以理解为一个项目的文件夹。提交(commit):Git …...
Falcon构建轻量级的REST API服务
Falcon构建轻量级的REST API服务 文章目录 Falcon构建轻量级的REST API服务安装falcon构建falcon项目应用托管(Hosting Your App)简单示例内容服务(Serving Text)JSON请求和响应处理路由和 URI 参数中间件异常处理 图像服务(Serving Images)创建图像资源关联资源请求和响应对象…...
【Python】python读取,显示,保存图像的几种方法
一、PIL:Python Imaging Library(pillow) PIL读取图片不直接返回numpy对象,可以用numpy提供的函数np.array()进行转换,亦可用Image.fromarray()再从numpy对象转换为原来的Image对象,读取,显示&…...
k8s系列-kuboard 该操作平台的使用操作
文章目录 一、相关平台,以及账号和密码镜像打包服务器仓库地址K8s平台数据库mysql 二、平台概述1.集群导入2.集群管理3.名称空间4.访问控制授权5.集群用户操作审计 三、kuboard平台操作手册一、部署服务操作1.名称空间部署2.工作负载部署 一、相关平台,以…...
基于讯飞星火大语言模型开发的智能插件:小策问答
星火大语言模型是一种基于深度学习的自然语言处理技术,它能够理解和生成人类语言。这种模型的训练过程涉及到大量的数据和复杂的算法,但最终的目标是让机器能够像人一样理解和使用语言。 小策问答是一款基于星火大语言模型的定制化GPT插件小工具。它的主…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建
制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
Netty从入门到进阶(二)
二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
