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

  • 实际的举例:

  • 二分模板的流程

相关推荐
星哥说事16 小时前
Rocky Linux 9 源码包安装php7
linux·经验分享
慕洋男孩20 小时前
错误经验一:计算两个整数a和b的和
c语言·经验分享·错误经验
石头wang1 天前
onenote千年老bug,字体bug (calibri&微软雅黑) 的解决
microsoft·bug·onenote
WPG大大通2 天前
TBT 5、TBT 4 和 USB4 的差异概述
经验分享·笔记·电脑·显示器·usb·充电
Joker—H3 天前
【Java】JUC并发(线程的方法、多线程的同步并发)
java·开发语言·经验分享·idea
林林要一直努力3 天前
AOSP Settings模块问题初窥
android·学习·bug·android studio
ChongYu重玉4 天前
【node/vue】css制作可3D旋转倾斜的图片,朝向鼠标
javascript·css·vue.js·经验分享·笔记·node.js·vue
源代码•宸5 天前
C++高频知识点(十三)
开发语言·c++·经验分享·面经
漠效5 天前
Duplicate cleaner pro 的使用技巧
windows·经验分享
小程序华东同舟求职5 天前
Ampace厦门新能安科技Verify 测评演绎数字推理及四色测评考点分析、SHL真题题库
人工智能·经验分享·科技·面试·职场和发展·求职招聘