关于二分的学习
刚进入大学的时候,感觉二分挺深不可测的,临界点一直都想不清楚,每次在while循环中都不知道是应该<还是<=,迷迷茫茫了许久,终于在代码源wls的视频二分学习中,找到了一个很适合我的模板(我比较笨吧,把题目套模板可以更快更准的解决相关问题);下面是从wls学来的模块
int find(int x){
int mid,l = 0,r = n+1;
while(l + 1 < r){
mid=( l + r ) / 2;
if( mid 在分界线左边 ) l = mid;
else r = mid;
}
return l or r;
}
此二分目在寻找一个分界线,在i-j之间必然有一条分界线,使得一边是满足条件的,另一边的不满足条件的,当i+1=j时,i以及左边都是左分界线,j以及j右边都是右边的内容
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步