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

  • 实际的举例:

  • 二分模板的流程

相关推荐
源代码•宸1 小时前
Golang语法进阶(定时器)
开发语言·经验分享·后端·算法·golang·timer·ticker
三流架构师1 小时前
高中数学资源合集
经验分享
hui函数1 小时前
Python系列Bug修复|如何解决 pip install -r requirements.txt 私有仓库认证失败 401 Unauthorized 问题
python·bug·pip
hui函数1 小时前
Python系列Bug修复|如何解决 pip install -r requirements.txt 子目录可编辑安装缺少 pyproject.toml 问题
python·bug·pip
佳豪科技11 小时前
存量房市场成为主战场:家装建材厂家针对旧房翻新的产品线调整与营销策略变革
经验分享
CodeCaptain14 小时前
CocosCreator 3.8.x [.gitignore]文件内容,仅供参考
经验分享·cocos creator
gravity_w15 小时前
Hugging Face使用指南
人工智能·经验分享·笔记·深度学习·语言模型·nlp
中屹指纹浏览器15 小时前
2026指纹浏览器底层技术揭秘:Hook内核与特征校验机制的实现
经验分享·笔记
智者知已应修善业16 小时前
【编写函数求表达式的值】2024-4-3
c语言·c++·经验分享·笔记·算法
三流架构师20 小时前
高中化学资源合集
经验分享