【BUG 弹药库】二分模板的优化

文章目录

      • [1. 为什么要优化二分算法?](#1. 为什么要优化二分算法?)
      • [2. 如何去优化原来的二分模板?](#2. 如何去优化原来的二分模板?)
      • [3. 案例分析](#3. 案例分析)

1. 为什么要优化二分算法?

① 平常学习的二分整数的算法模板边界的问题很容易出错,不知道什么时候用 l = mid,r = mid - 1;或者是 r = mid,l = mid + 1,这两个地方很容易出错,所以要进行优化;

2. 如何去优化原来的二分模板?

  • 优化后的代码模板如下:
cpp 复制代码
int l = -1, r = n;		// 注意:将二分查找的下标控制在 [0, n-1]

while (l + 1 != r)
{
		int mid = (l + r) / 2;
		
		if (IsBlue(mid))		// IsBlue()该函数根据具体逻辑进行编写
			l = mid;
		else 
			r = mid;
}
	// 具体返回 l 还是 r 根据你的蓝红边界的划分来确定
	return l or r;

3. 案例分析

  • 实际的举例:

  • 二分模板的流程

相关推荐
生态笔记3 小时前
R利用spaa包计算植物/微生物的生态位宽度和重叠指数
经验分享·其他
IT小白农民工5 小时前
SAP Business One(B1)打开自定义对象报错【Failed to initialize document numbering:】
经验分享·sap
半导体守望者5 小时前
AE FC77X77XXFC78X78XXFC79X MFC质量流量计 Mass Flow Controllers user manual
经验分享·笔记·功能测试·自动化·制造
凤年徐6 小时前
【C/C++】自定义类型:结构体
c语言·开发语言·c++·经验分享·笔记·算法
跨境卫士-小汪7 小时前
跨境电商定价革命:亚马逊“逆向提价“策略背后的价值重构逻辑
经验分享
oneDay++7 小时前
# IntelliJ IDEA企业版开发入门:包、类与项目结构详解
java·经验分享·学习·intellij-idea·学习方法
汇能感知7 小时前
FPGA在光谱相机中的核心作用
经验分享·笔记·科技
chennalC#c.h.JA Ptho10 小时前
ubuntu studio 系统详解
linux·运维·服务器·经验分享·ubuntu·系统安全
gxn_mmf18 小时前
典籍知识问答重新生成和消息修改Bug修改
前端·bug
赵谨言20 小时前
基于单片机的视力保护仪设计与实现
经验分享·毕业设计