Skip to main content

二分

info

灵神二分题单.

二分的难点不在于二分的循环过程,而在于如何确定二分搜索域以及确定是否满足题意的check函数。

💡注意:check函数满足题意返回true,求最小是r = mid,求最大是l = mid。

  • 34. 在排序数组中查找元素的第一个和最后一个位置
  • 35. 搜索插入位置
  • 704. 二分查找
  • 744. 寻找比目标字母大的最小字母
  • 2529. 正整数和负整数的最大计数
  • 1385. 两个数组间的距离值
  • 2300. 咒语和药水的成功对数 1477
  • 2389. 和有限的最长子序列
  • 1170. 比较字符串最小字母出现频次
  • 2080. 区间内查询数字的频率 1702
  • 2563. 统计公平数对的数目 1721
  • 2856. 删除数对后的最小数组长度 - 力扣(LeetCode) (重点关注证明过程)
  • 981. 基于时间的键值存储 - 力扣(LeetCode) 数据结构题
  • 1146. 快照数组 - 力扣(LeetCode)数据结构题
  • 1438. 绝对差不超过限制的最长连续子数组 - 力扣(LeetCode) (善用红黑树)
  • 658. 找到 K 个最接近的元素 - 力扣(LeetCode)
  • 1818. 绝对差值和 - 力扣(LeetCode)
  • 911. 在线选举 - 力扣(LeetCode) 即使暴力遍历二分查找也会超时,学会预处理
  • LCP 08. 剧情触发时间 - 力扣(LeetCode) 需要明确哪个是查找条件哪个是带查找对象

找最小

  • 1283. 使结果不超过阈值的最小除数 1542
  • 2187. 完成旅途的最少时间 1641
  • 1870. 准时到达的列车最小时速 1676
  • 1011. 在 D 天内送达包裹的能力 1725 注意搜索域的确定
  • 875. 爱吃香蕉的珂珂 1766
  • 3296. 移山所需的最少秒数 二分思路注意等价为所有工人并行操作
  • 475. 供暖器 常规思路是二分半径r,简单的想法是关注最近的两个供暖器
  • 2594. 修车的最少时间 1915 同3296
  • 1482. 制作 m 束花所需的最少天数 1946 搜索天数的情况下查看如何满足要求
  • 3048. 标记所有下标的最早秒数 I 2263 理解题意为
  • 考试复习,有助于写出check函数,考试的时间越晚越好,这样我们能有更充足的时间复习(存在单调性)

找最大

info

💡注意:check函数满足题意返回true,求最小是r = mid,求最大是l = mid。对于开区间写法,简单来说 check(mid) == true 时更新的是谁,最后就返回谁。

  • 275. H 指数 II
  • 2226. 每个小孩最多能分到多少糖果 1646
  • 2982. 找出出现至少三次的最长特殊子字符串 II 1773 (对于每种字符单独统计所有长度,然后在每个字- 符框架下进行二分查找)
  • 2576. 求出最多标记下标 1843
  • 1898. 可移除字符的最大数目 1913
  • 1802. 有界数组中指定下标处的最大值 重点是如何统计给定max(num[index])下的数组和
  • 1642. 可以到达的最远建筑 1962 贪心的思想