25_03_14 & 25_03_15 二分听课笔记

参考视频:
https://www.bilibili.com/video/BV1RT41197Ln/?spm_id_from=333.337.search-card.all.click&vd_source=ace3b71d7785694a7e39f6c7f785c334

int 最大值:2^31-1 ~ 2e9,所以有的时候int cnt 不够计数了,要换成更牛逼的类型:long long int cnt 大小为:1e18;

二分的使用前提是排序!!!,如果答案不对很可能是忘记了排序

看题没思路尽量先暴力枚举

二分答案中定义check的蓝色区间为满足条件的区间,红色区间为不满足条件的区间,根据模型分为“最小值里找最大值”(满足条件里最小的值:l)和“最大值里找最小值”(不满足条件里最大的值:r)
二分答案中r与l的含义究竟是索引还是答案本身,传入check的究竟是mid还是nums[mid] ?

l与r请严格遵守二分法的规则

不要把i迭代放在for里,
for(int i = 0;i<size;){
i++;
}
这会导致范围变成了1 ~size ,然后访问[size]的时候出现越界错误

抽象出这样一个模型

总结:讲的很好,二分答案的含义清晰明了

posted @ 2025-03-15 19:24  Tongkuly  阅读(21)  评论(0)    收藏  举报