news 2026/4/23 15:42:11

山脉二分找中值

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
山脉二分找中值

lc

lc1095

山脉数组 两次二分

先二分查找山脉数组的峰值位置

再在峰值左侧升序区间和右侧降序区间分别二分查找目标值

优先返回左侧找到的索引

/**
* // This is the MountainArray's API interface.
* // You should not implement it, or speculate about its implementation
* class MountainArray {
* public:
* int get(int index);
* int length();
* };
*/

class Solution
{
public:
int binary_search(MountainArray & mountainArr, int target, int L, int R, int sign)
{
target = sign * target;
while (L <= R)
{
int mid = (L + R) >> 1;
int cur = sign * mountainArr.get(mid);
if (cur == target)
return mid;
else if (cur < target)
L = mid + 1;
else
R = mid - 1;
}
return -1;
}

int findInMountainArray(int target, MountainArray &mountainArr)
{
int L = 0, R = mountainArr.length() - 1;
while (L <= R)
{
int mid = (L + R) >> 1;
if (mountainArr.get(mid) < mountainArr.get(mid + 1))
L = mid + 1;
else
R = mid-1;
}
int peak_idx = L;
int idx = binary_search(mountainArr, target, 0, peak_idx, 1 );
if (idx != -1)
return idx;
return binary_search(mountainArr, target, peak_idx + 1, mountainArr.length() - 1, -1 );

}
};

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:29:32

【原子的户型图】能层、能级、原子轨道

一、能层&#xff08;电子层&#xff09; 定义&#xff1a; 在多电子原子中&#xff0c;根据电子离核远近与能量高低划分的层次。电子层序数 (n)1234567符号表示KLMNOPQ | 能量关系 | E₁ < E₂ < E₃ < … < E₇ (n 越大&#xff0c;能量越高) | | 距核远近 | 近 …

作者头像 李华
网站建设 2026/4/23 12:29:30

PDF-Extract-Kit保姆级指南:布局检测参数详解

PDF-Extract-Kit保姆级指南&#xff1a;布局检测参数详解 1. 引言 在处理PDF文档时&#xff0c;尤其是学术论文、技术报告等复杂版式文件&#xff0c;如何高效准确地提取其中的文字、公式、表格和图像信息&#xff0c;一直是自动化文档解析的核心挑战。PDF-Extract-Kit 正是为…

作者头像 李华
网站建设 2026/4/23 13:55:11

ImageGlass:免费开源的轻量级图像浏览器终极指南

ImageGlass&#xff1a;免费开源的轻量级图像浏览器终极指南 【免费下载链接】ImageGlass &#x1f3de; A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 还在为Windows自带的图片查看器功能单一而烦恼吗&#xff1f;I…

作者头像 李华
网站建设 2026/4/22 9:43:36

西门子SMART200 PLC与托利多电子秤自由口通讯程序实战

西门子SMART200 PLC和托利多电子称自由口通讯程序。 通俗易懂&#xff0c;注释全&#xff0c;自己编写的&#xff0c;实际项目应用的。在实际工业项目中&#xff0c;经常会遇到需要将西门子SMART200 PLC与托利多电子秤进行通讯的需求&#xff0c;以获取精准的称重数据并进行后续…

作者头像 李华
网站建设 2026/4/23 9:44:22

PhotoDemon完整指南:免费便携的图片编辑神器如何提升你的工作效率

PhotoDemon完整指南&#xff1a;免费便携的图片编辑神器如何提升你的工作效率 【免费下载链接】PhotoDemon 项目地址: https://gitcode.com/gh_mirrors/ph/PhotoDemon 在数字创作日益普及的今天&#xff0c;一款轻量级但功能全面的图片编辑工具显得尤为重要。PhotoDemo…

作者头像 李华
网站建设 2026/4/22 20:47:14

在 JavaScript 中,精度丢失问题解决教程

在 JavaScript 中&#xff0c;浮点数相加时因 IEEE 754 双精度浮点数表示限制&#xff0c;常出现精度丢失问题&#xff08;如 0.1 0.2 0.30000000000000004&#xff09;。以下是 5 种核心解决方案及代码实现&#xff1a;一、整数放大法&#xff08;推荐简单场景&#xff09;将…

作者头像 李华