【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. 案例分析

  • 实际的举例:

  • 二分模板的流程

相关推荐
IT枫斗者7 小时前
前端部署后如何判断“页面是不是最新”?一套可落地的版本检测方案(适配 Vite/Vue/React/任意 SPA)
前端·javascript·vue.js·react.js·架构·bug
德思特10 小时前
德思特新品 | 双小区5G NR基站模拟器正式推出,支持从单点验证迈向网络级测试
经验分享·无线通信·射频微波
suuijbd11 小时前
某小厂Java开发面经
经验分享
jikemaoshiyanshi15 小时前
如何选择防护面罩?告别国内品牌单纯对比,回归工业呼吸防护体系本质
经验分享·健康医疗
W.W.H.15 小时前
嵌入式系统硬件接口全景图
经验分享·uart·iic·gpio·spi
怪兽软家16 小时前
EndNote 2025 (2025.3)中文版安装教程及下载
经验分享·生活
我不是懒洋洋16 小时前
布谷鸟过滤器:比布隆过滤器更优雅的判重方案
c语言·经验分享
一个人旅程~20 小时前
Win旧版或win10部分版本如何解除260字符长路径名限制?
linux·windows·经验分享·电脑
iEdHu20 小时前
LinuxDO | L站 | Linux.do邀请码2026最新获取方式【邀请链接每日分享】
linux·经验分享·其他·社交电子
wxl78122721 小时前
Hermes+Qwen3.6-35B本地离线全链路全自动开发React项目,完成cognee-ui从零开发+自动测试+自动修Bug闭环
人工智能·经验分享·自我提升·hermes agent