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

  • 实际的举例:

  • 二分模板的流程

相关推荐
weixin_5372170620 分钟前
亲子教育资源合集
经验分享
TeleostNaCl1 小时前
OpenWrt | 使用 nftables 规则禁用小明投影仪内置 DoT 服务的流量
经验分享·智能路由器·电视盒子·智能电视·tv·智能tv
癫狂的兔子1 小时前
【BUG】【Python】eval()报错
python·bug
我命由我123452 小时前
开发中的英语积累 P21:Parentable、Guideline、Manifest、Expire、Condition、Optimize
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
老臣软件2 小时前
macOS 下载太慢?问题可能不在网速
经验分享·macos·mac·实用软件·网络下载管理器
余生H3 小时前
Ai编程翻车修车记3 -一次因为移除监听器失败导致bug后的DOM事件深入学习
学习·bug·ai编程
猎河增长官3 小时前
成绩数据可视化分析系统,教师精准教学改进方向
经验分享
癫狂的兔子3 小时前
【BUG】【Python】list切片和list.reverse()的区别
bug
FW40086181183 小时前
2025年合同管理系统国产化替代方案TOP5选型指南
经验分享
Norach4 小时前
Ubuntu升级opencv版本至4.9.0
linux·经验分享·opencv·yolo·ubuntu·dnn