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

  • 实际的举例:

  • 二分模板的流程

相关推荐
WK100%3 小时前
二叉树经典OJ题
c语言·数据结构·经验分享·笔记·链表
三流架构师5 小时前
训狗教程资源合集
经验分享
孞㐑¥7 小时前
算法—前缀和
c++·经验分享·笔记·算法
源代码•宸9 小时前
Leetcode—47. 全排列 II【中等】
经验分享·后端·算法·leetcode·面试·golang·深度优先
癫狂的兔子10 小时前
【BUG】【Python】【爬虫】爬取加载中的数据
爬虫·python·bug
0和1的舞者10 小时前
公共类的注意事项详细讲解
经验分享·后端·开发·知识·总结
学工科的皮皮志^_^11 小时前
以太网PHY芯片学习RTF8211
经验分享·嵌入式硬件·学习·以太网·phy
智者知已应修善业12 小时前
【输出方形点阵】2024-11-1
c语言·c++·经验分享·笔记·算法
may1992heihei12 小时前
Trae中实现了skill自由,自动化视频剪辑发布(保姆级指南)
经验分享
清酒难咽21 小时前
算法案例之递归
c++·经验分享·算法