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

  • 实际的举例:

  • 二分模板的流程

相关推荐
测试人社区—84163 分钟前
Mocking与Stubbing在单元测试中的正确使用
人工智能·git·单元测试·自动化·bug·postman
TeleostNaCl30 分钟前
在小米 Hyper OS 2 上使用开发者选项关闭视频彩铃功能
android·经验分享
RPAdaren2 小时前
RPA 市场格局与企业抉择:国内外公司优劣势剖析及选型指南
经验分享
TeleostNaCl3 小时前
如何在 Android debug 的时候使用 adb install 命令降级安装应用
android·经验分享·adb·android runtime
以梦为马mmky3 小时前
五个月上岸国科大声学所经验分享。
经验分享·通信考研·信号与系统·中国科学院大学
岁岁的O泡奶3 小时前
NSSCTF_crypto_[MTCTF 2021 final]ezRSA
经验分享·python·算法·密码学·crypto
AI科技星4 小时前
伟大的跨越:从超距作用到时空运动——牛顿与张祥前引力场方程的终极对比
开发语言·数据结构·经验分享·线性代数·算法
无奈笑天下4 小时前
银河麒麟高级服务器版本【更换bond绑定的网卡】操作方法
linux·运维·服务器·arm开发·经验分享
gavin_gxh5 小时前
SAP MM 采购订单号 excel上传 获取订单状态 审批 取消审批
运维·经验分享·其他
asdzx676 小时前
用 Python 自动化编辑 Word 文档
经验分享