当前位置: 首页 > news >正文

力扣154. 寻找旋转排序数组中的最小值 II

在这里插入图片描述
这一题和

力扣153. 寻找旋转排序数组中的最小值

类似
无非多了重复元素,对于重复元素我们只需要判断mid和r相同的时候让r- -
类似

力扣81. 搜索旋转排序数组 II

平常我都是用闭区间写二分
找最小值需要用一个ans来保存mid
因为闭区间二分循环结束可能l,r都无法指向最终的结果。
完整代码如下:

class Solution {
public:int findMin(vector<int>& nums) {int l=0;int r=nums.size()-1;int ans=INT_MAX;while(l<=r){int mid=(l+r)/2;ans=min(ans,nums[mid]);if(nums[mid]>nums[r]){l=mid+1;}else if(nums[mid]==nums[r]){r--;}else{r=mid-1;}}return ans;}
};

这里如果用开区间的话就能在循环结束后r指向的位置即为结果

class Solution {
public:int findMin(vector<int>& nums) {int l=-1;int r=nums.size()-1;int ans=INT_MAX;while(l+1<r){int mid=(l+r)/2;if(nums[mid]>nums[r]){//说明在第一个阶段l=mid;}else if(nums[mid]==nums[r]){r--;}else{//说明在第二个阶段r=mid;}}return nums[r];}
};

最好开区间也掌握。
时间复杂度平均O(logn)
最坏是O(n)

http://www.dtcms.com/a/589201.html

相关文章:

  • React构建工具升级
  • @Transactional注解的切点匹配
  • 建设网站 请示 报告淘宝网站制作公司哪家好
  • leetcode1770.执行乘法运算的最大分数
  • 本溪市城乡住房建设厅网站国外做网站侵权
  • 虚拟化入门笔记
  • 物联网设备运维中的自适应硬件老化监测与寿命预测技术
  • dede网站建设360商城官网
  • 【云运维】LNMP 架构部署与应用
  • 【最长连续序列】
  • FreeRTOS抢占调度与时间片调度
  • AI 编程翻车实录 - 智谱 GLM 4.6 给的自信
  • Anygrasp_sdk本地部署和使用
  • 系统设计 --- 多节点中按顺序处理消息
  • 深圳高端企业官方网站建设海创网站建设
  • 【C#】何时用ref?
  • STM32中ADC + DMA自动采集系统
  • 读书之《架构师的自我修炼》_个人笔记
  • 什么网站可以快速做3d效果图php网站维护
  • 迅速提高网站排名帮别人做网站收多少钱合适
  • 怎么做网站上的模拟动画做网站四百全包
  • 利用短整数类型和部分字符串优化DuckDB利用数组求解数独SQL
  • 营销型网站四大功能模版网站有源代码吗
  • 力扣81. 搜索旋转排序数组 II
  • WampServer安装教程(图文步骤)+ 下载+配置+解决图标红橙绿问题【附安装包】
  • 使用 dash 构建 mvvm 整洁架构应用
  • 跨时钟域处理
  • 2025制品管理工具选型,jfrog vs nexus vs hadess哪一款更好用?
  • 北京校园网站建设wordpress新建页面是
  • 【1.7】基于FPGA的costas环开发1——发射端信号产生模块