五、二分/双指针
5.1 二分
二分用于在一个已经排好序的数组里查询某个数/查询第一个大于(不小于)某数的数。
5.1.1 非递归实现
int l=1,r=n,x;
while(l<r){
int mid=l+r>>1; //l和r的平均数(向下取整),等价于(l+r)/2
if(a[mid]<x)l=mid+1; //这里可以根据需求换成小于等于,或者check(mid),即任意//写的check函数
else r=mid;
}
//搜索完l即为寻找的地方
5.1.2 递归实现
int bs(int l,int
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
技术岗必备:笔面试算法 文章被收录于专栏
<p> 本专刊由牛客官方团队打造 </p> <p> 算法作为技术岗位必会的内容,在笔面试中的重要性越来越高,但有很多同学对于算法怎么学习,怎么刷题以及如何自己调试依然一无所知<span></span> </p> <p> 牛客官方团队打造了本书内容帮助大家了解校招算法套路增强通过概率,为校招保驾护航 </p>