第四部分 二分答案
最小值最大(或最大值最小)问题,二分答案区间,配合贪心、DP 等其他算法检验这个答案是否合理,最优化问题转换为 判定性问题。
「二分」的本质是二段性,并非单调性。说白了就是答案在一个区间,二分区间,直到找到最优答案。
TreeSet 的方法:
E floor(E e) 返回此 set 中小于或等于给定元素的最大元素,如果没有这样的元素,则 null 。
E ceiling(E e) 返回此 set 中大于或等于给定元素的最小元素,如果没有这样的元素,则 null 。
287.寻找重复数
假设重复的数字为 x,数组中 1 到 x 的个数一定 > x,进一步 1 到 x 后面的某个数 y 的个数也一定 > y。
cnt 是数组中 ≤ mid 的个数,如果 cnt > mid,那么说明 x ≤ mid,即 x∈ [left, mid]。反过来讲 cnt ≤ mid,说明 x∈ (mid, right]。注意 x 的个数会补齐缺失的数后还剩两个。
左查找插入位置&#