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

今日主题二分查找(寻找峰值 力扣162)

峰值元素是指其值严格大于左右相邻值的元素。

给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。

你可以假设 nums[-1] = nums[n] = -∞ 。

你必须实现时间复杂度为 O(log n) 的算法来解决此问题。

示例 1:

输入:nums = [1,2,3,1]
输出:2
解释:3 是峰值元素,你的函数应该返回其索引 2。

示例 2:

输入:nums = [1,2,1,3,5,6,4]
输出:1 或 5 
解释:你的函数可以返回索引 1,其峰值元素为 2;或者返回索引 5, 其峰值元素为 6。

提示:

  • 1 <= nums.length <= 1000
  • -231 <= nums[i] <= 231 - 1
  • 对于所有有效的 i 都有 nums[i] != nums[i + 1]

代码部分:

int findPeakElement(int* nums, int numsSize) {int left = 0 , right = numsSize - 2 ;  // 看好边界值,随便二分int mid;while(left <= right){mid = left + ( right - left ) /2;if(nums[mid] > nums[mid + 1]){right = mid - 1;}else{left = mid + 1;}}return left;}

相关文章:

  • 如何提高工作效率
  • PyTorch——非线性激活(5)
  • 用Python训练自动驾驶神经网络:从零开始驾驭未来之路
  • unity UI Rect Transform“高”性能写法
  • Percona Toolkit利器pt-config-diff:MySQL配置差异分析与实战指南
  • 安全大模型的思考
  • WPS 利用 宏 脚本拆分 Excel 多行文本到多行
  • React 第五十一节 Router中useOutletContext的使用详解及注意事项
  • 【前端并发请求控制:必要性与实现策略】
  • web攻防之SSTI 注入漏洞
  • web第九次课后作业--SpringBoot基于mybatis实现对数据库的操作
  • JavaScript 数据处理 - 数值转不同进制的字符串(数值转十进制字符串、数值转二进制字符串、数值转八进制字符串、数值转十六进制字符串)
  • 学习资料搜集-ARMv8 cache 操作
  • Go Modules 详解 -《Go语言实战指南》
  • CentOS 7镜像源替换
  • Ntfs!NtfsLookupAllocation函数分析之读取runs的一个例子
  • CentOS 7.9 安装 宝塔面板
  • 阿里云百炼全解析:一站式大模型开发平台的架构与行业实践
  • 【LUT技术专题】图像自适应3DLUT代码讲解
  • 第六章 缓存一致性协议 A Primer on Memory Consistency and Cache Coherence - 2nd Edition
  • 做视觉影像网站用什么软件系统/网店推广网站
  • 网站运营 解决方案/企业官网
  • 如何编辑网站后台/atp最新排名
  • 商务网站的建设步骤/西安百度网站排名优化
  • 博客网站建设源码/正规接单赚佣金的app
  • 科泉网站/品牌全网推广