
二分
文章平均质量分 68
相关总结及OJ练习
Ypuyu
Ypuyu
展开
-
[浮点数二分+模板] 浮点数二分模板题
文章目录1. 题目说明2. 题目解析1. 题目说明2. 题目解析浮点数二分比较简单,没有整数二分那么多的边界问题。但是有几个小点需要注意:浮点数不可判等,精度问题。若最后输出希望保留 n 位小数时,一般将精度设置为 1e(-n-2) 位,即总是比小数多两位即可,这是一个经验值。如保留6位小数,则精度可设为 1e-8也可以直接 for 直接循环 100 次,可以直接得到答案。模板代码如下:// 浮点数二分成熟模板bool check(double x) {/* ... */} //原创 2020-10-19 23:27:00 · 360 阅读 · 0 评论 -
[整数二分+模板] 整数二分模板题
文章目录1. 题目说明2. 题目解析1. 题目说明2. 题目解析二分是算法中很重要的思想,主要分为两大类:整数二分、浮点数二分。其中,浮点数二分比较简单,多见于求平方根、三次方根等题目。整数二分最复杂,各种边界情况,以及到底是大于,还是大于等于,到底是更新左端点,还是更新右端点,到底是 l = mid,还是 l = mid + 1。这些各式各类的边界问题,让写整数二分题目成为了一种奇妙的体验:我也不知道怎么了,反正代码 AC 了。玄学 AC…在此,整理下整数二分的模板题,这道经典问题可以覆盖所原创 2020-10-19 23:21:16 · 302 阅读 · 0 评论 -
[M二分] lc2080. 区间内查询数字的频率(模拟+二分+数据结构+Go二分库函数+知识总结)
因为我的 l,r := 0, n-1 这样的设定下,注定他们和 lower_bound 的返回效果不可通用。当我再使用这个模板处理当前问题的时候,或者说我希望自己去实现 lower_bound、upper_bound 操作的时候,发现板子是用不了的。显然,lower_bound 求解是无解状态,那么会返回下标 2,upper_bound 求解也是无解状态返回 2。因为没加结果的判断,导致二分模板求解出来的值和实际上 lower_bound、upper_bound 是不符的。我所习惯使用的整数二分模板,原创 2025-02-18 19:38:24 · 1014 阅读 · 0 评论 -
[M二分答案] lc3296. 移山所需的最少秒数(二分答案+周赛416_2+好题)
值得注意的是,这里不仅需要二分时间这个答案值,在计算每个工人能挖掘的最大高度的总和时,也是需要通过二分来进行计算的。因为对于限定的 t 时间下,工人最多的挖掘高度无非就是 mountainHeight,工人挖掘速度为 1,那么这里的挖掘高度就等价于工人挖掘的时间。判断它是否在 t 时间内。超过了说明挖不到 mid 高度,反之则可以挖到 mid 高度。同样一道很经典的二分答案问题哈。原创 2024-09-23 02:22:30 · 485 阅读 · 0 评论 -
[M二分答案] lc2576. 求出最多标记下标(二分答案+同向双指针+贪心)
本题还挺有意思的哈。有几种较为直观的贪心思路,却都是错误的。正解思路:二分答案,同向双指针。原创 2024-09-12 23:04:11 · 399 阅读 · 0 评论 -
[M前缀和] lc3152. 特殊数组 II(前缀和变种+二分+lower_bound操作+好题)
本题思路比较明确哈。首先自己想的是二分的思路,但碍于一些细节,代码没有写出来,但思路没啥问题。看题解用的是前缀和的思路,是正解,更加简单直接。官解中用的 dp,没啥必要在这里。明显,前缀和思路考虑问题更加少,代码也十分好写。原创 2024-08-14 04:11:30 · 1036 阅读 · 0 评论 -
[M双指针] lc611. 有效三角形的个数(二分+双指针+线性扫描+算法优化)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:611. 有效三角形的个数2. 题目解析两种做法。体会二分和双指针的联系与区别。方法一:排序+二分先排序,然后枚举最小边 a,次小边 b,最长边要满足 a+b>c,故要找到小于 a+b 的最大的一个,二分找就行了。二分时需要注意下边界问题,每次从 [b, n-1] 开始二分是正确的,找不到的话将停留在 b 下标处,算答案的时候不会出错。否则,遇见 [0, 0, 0] 这样的数据,从 l=0, r=n-1 开始二分的话,会出错。原创 2021-08-04 07:41:54 · 182 阅读 · 0 评论 -
[E二分] lc852. 山脉数组的峰顶索引(二分+思维+脑筋急转弯)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:852. 山脉数组的峰顶索引2. 题目解析数据太强,搞得这题没啥意思了。等价于寻找数组中的最大值,且最大值左右两段均严格递减。**可以一次遍历也可以二分,不过这个二分有点考思维…需要定义一个性质,该性质具有二段性,保证能够二分。这个性质就是单调性。mid 出来之后,用 a[mid-1] 与 a[mid] 的大小关系来判断 mid 再哪一段中,再进行二分即可。所以这道题至少包含 3 个值…**时间复杂度:O(logn)O(log原创 2021-06-15 00:20:18 · 122 阅读 · 0 评论 -
[H二分] lc1889. 装包裹的最小浪费空间(二分+思维+好题+周赛244_4)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:5778. 使二进制字符串字符交替的最少反转次数2. 题目解析贪心题。很麻烦的一道题…没啥思路。能知道从原串转化到 01 或 10 相间的串,与从 01 或 10 相间的串转化到原串,所用的类型 2 操作应该是一致的。故,我们可以考虑如何将一个 01 相间的串转化为原串,其中类型1 操作可以任意使用,保证类型2 操作最少。那么针对原串长度为偶数情况来讲,类型 1 操作不论做多少次,都只会构成 010101...01 或 101010.原创 2021-06-06 23:28:42 · 253 阅读 · 0 评论 -
[二分答案] aw3578. 最大中位数(二分答案+边界处理+aw周赛001_2)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:3578. 最大中位数2. 题目解析二分答案。但是我貌似每次都看不出来。首先本题是要求一个答案中位数。其次,中位数要尽量大。中位数显然不能取特别大,有条件限制,给定一个可能中位数 x 的时候,我们只需要判断后半段能否在 k 次内变到 x 即可。这个 O(n)O(n)O(n) 即可进行判断。故二分答案是 O(logn)O(logn)O(logn),判断 O(n)O(n)O(n)。细节:注意本题计算 mid 时需要开 long long,原创 2021-05-29 22:19:56 · 157 阅读 · 0 评论 -
[二分答案] aw680. 剪绳子(二分答案+字节2019笔试)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:680. 剪绳子相关题目:[M二分答案] lc1011. 在 D 天内送达包裹的能力(二分答案)[M二分答案] lc1482. 制作 m 束花所需的最少天数(二分答案)2. 题目解析涉及浮点数的二分答案。假设最后长度为 len,则当二分值大于 len 的时候,剪到的绳子太少,不和要求。反之,剪得太多,就可以增加这个 len。浮点数判等需要注意。时间复杂度:O(nlogn)O(nlogn)O(nlogn)空间复杂度:O(1)原创 2021-05-10 17:44:48 · 119 阅读 · 0 评论 -
[M二分答案] lc875. 爱吃香蕉的珂珂(二分答案)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:1482. 制作 m 束花所需的最少天数相关题目:[M二分答案] lc1011. 在 D 天内送达包裹的能力(二分答案)[M二分答案] lc1482. 制作 m 束花所需的最少天数(二分答案)2. 题目解析显然二分答案 k,假设最小速度即为 k,那么当二分的值小于 k 的时候就不合法,即速度过小,需要时间就太长,同理大于 k 则合法。合法性判断需要注意上取整即可。时间复杂度:O(nlogn)O(nlogn)O(nlogn)原创 2021-05-10 17:33:26 · 162 阅读 · 0 评论 -
[M二分答案] lc1482. 制作 m 束花所需的最少天数(二分答案)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:1482. 制作 m 束花所需的最少天数相关题目:[M二分答案] lc1011. 在 D 天内送达包裹的能力(二分答案)2. 题目解析给定一个天数,很容易判断天数是否是合法的,即能将花制作完成。最少等待的天数 d,小于这个 d 则制作不完成,大于这个 d 即能制作完成,那么就可以针对天数二分答案了。时间复杂度:O(nlogn)O(nlogn)O(nlogn)空间复杂度:O(1)O(1)O(1)dfsclass Solution原创 2021-05-10 17:28:29 · 143 阅读 · 1 评论 -
[M二分答案] lc1011. 在 D 天内送达包裹的能力(二分答案)
文章目录1. 题目来源2. 题目解析1. 题目来源链接:1011. 在 D 天内送达包裹的能力2. 题目解析一般遇到带 最 字,的题目,我们可以优先考虑二分查找或者动态规划。本题是找最低运载能力,假设为 d。那么显然小于 d 的一定不和要求,大于 d 的一定满足要求,那么就可以 二分答案 了。那么当给定一个可能答案的时候,判断这个答案是否成立往往是简单的,也就是我们所需要实现的 check() 函数,一般就是按照题意进行暴力模拟即可。注意:本题的运载能力所在区间一定是 [最大包裹重量, 包裹原创 2021-05-10 16:58:00 · 162 阅读 · 0 评论