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

  • 实际的举例:

  • 二分模板的流程

相关推荐
源代码•宸2 小时前
Leetcode—3. 无重复字符的最长子串【中等】
经验分享·后端·算法·leetcode·面试·golang·string
Wpa.wk3 小时前
持续集成 - 持续集成工具-Jenkins的部署流程
java·运维·经验分享·ci/cd·自动化·jenkins
浅念-5 小时前
C语言——单链表
c语言·开发语言·数据结构·经验分享·笔记·算法·leetcode
cat2bug5 小时前
介绍一下Cat2Bug-App如何连接自己的Bug平台
bug
秋天枫叶355 小时前
【k8s集群Docker + cri-dockerd】服务器重启或关机后 apiserver/controller/scheduler 无法自动恢复
linux·运维·服务器·容器·kubernetes·bug
lcj09246665 小时前
立即行动:解锁超高频RFID在医药冷链中的无限可能
经验分享·信息可视化·rfid
louiseailife6 小时前
企业级AI Agent选型与实践:厂商能力对比与落地路径分析
经验分享
AI_菲姐6 小时前
未来的 Web3 组织,将从会议开始
大数据·经验分享·web3·去中心化·区块链
熊猫不是猫QAQ6 小时前
绿联NAS+VIVO=终极全屋智能中枢,基于手机原生的智能家居控制
经验分享
changyunkeji7 小时前
电缆输送机,高质量产品助力行业快速发展
经验分享·科技