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

  • 实际的举例:

  • 二分模板的流程

相关推荐
Wen5 小时前
小米路由器4A千兆刷OPENWRT(简单快速)
网络·经验分享·智能路由器
苍何fly14 小时前
用腾讯版 Claude Code 做了个小红书封面图 Skills,已开源!
人工智能·经验分享
JMchen12314 小时前
Android计算摄影实战:多帧合成、HDR+与夜景算法深度剖析
android·经验分享·数码相机·算法·移动开发·android-studio
三流架构师15 小时前
素描资源合集
经验分享
宝宝单机sop16 小时前
深度学习资源合集(第二辑)
经验分享
小周不忙AI智能17 小时前
AI智能体对传统行业的冲击与数字化生产力重构定义
经验分享
三水不滴18 小时前
对比一下RabbitMQ和RocketMQ
经验分享·笔记·分布式·rabbitmq·rocketmq
YYYing.18 小时前
【Linux/C++进阶篇(二) 】超详解自动化构建 —— 日常开发中的“脚本” :Makefile/CMake
linux·c++·经验分享·ubuntu
孞㐑¥18 小时前
算法—哈希表
开发语言·c++·经验分享·笔记·算法
Polaris_T19 小时前
2本9硕AI人实习&秋招分享(回江苏版)
人工智能·经验分享·深度学习·求职招聘