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

二分法寻找无序序列的峰值

 首先考虑边界的情况

(1)当只有一个数,那就返回0;

(2)如果有两个数,看1是否大于0,大于返回1;

(3)看数组末尾两个数,是否存在size-1>size-2;如果是直接返回size-1;

然后开始二分

已经明确首尾是下降趋势,再看mid与mid+1;如果也是下降趋势,证明mid与R之间不会存在最大值;所以R左移,砍掉右边;反之亦然

代码:

class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*** @param nums int整型vector* @return int整型*/int findPeakElement(vector<int>& nums) {// write code hereif(nums.size()==1)  return 0;if(nums.size()==2){if(nums[1]>nums[0]){return 1;}}if(nums[nums.size()-1]>nums[nums.size()-2]){return nums.size()-1;}int L = 0;int R = nums.size() - 1;int mid = 0;while (L < R) {mid = L + ((R - L) >> 1);if (nums[mid] > nums[mid + 1]) {R = mid;} else {L = mid + 1;}}return L;}
};

http://www.xdnf.cn/news/1109539.html

相关文章:

  • [Token]Token merging for Vision Generation
  • 学python,PyCharm 和 VSCode哪个更好用?
  • ChatRex RexSeek RexThinker: 结合多模态大语言模型的目标检测模型构建
  • vue3+vit+vue-router路由,侧边栏菜单,面包屑导航设置层级结构
  • 商业机密保卫战:如何让离职员工带不走的客户资源?
  • 六年级数学知识边界总结思考-上册
  • Rust Web 全栈开发(五):使用 sqlx 连接 MySQL 数据库
  • 【赵渝强老师】国产数据库TiDB的代理路由:TiProxy
  • 服务器怎么跑Python项目?
  • 【代码随想录】刷题笔记——哈希表篇
  • MySQL 中图标字符存储问题探究:使用外挂法,毕业论文——仙盟创梦IDE
  • shiro550反序列化漏洞复现(附带docker源)
  • 【Docker基础】Dockerfile指令速览:基础常用指令详解
  • Leetcode百题斩-二分搜索
  • 使用langgraph 构建RAG 智能问答代理
  • springboot AOP面向切面编程
  • 连接池深度解析:原理、实现与最佳实践
  • Hap包引用的Hsp报签名错误怎么解决
  • 使用ESM3蛋白质语言模型进行快速大规模结构预测
  • 每日一SQL 【销售分析 III】
  • Python问题记录`No module named ‘matplotlib‘` 问题解决方案
  • 基于SEP3203微处理器的嵌入式最小硬件系统设计
  • 基于 Python 的数据分析技术综述
  • 剑指offer56_数组中唯一只出现一次的数字
  • 【MogDB】一种基于ctid分片并发查询以提升大表查询性能的方式
  • 【go】gopath、GO111MODULE=on作用
  • Javaweb- 11 MVC架构模式
  • JDK官方文档下载教程
  • 计算机视觉 之 经典模型汇总
  • 快速排序递归和非递归方法的简单介绍