5.二分/双指针

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.1递归实现

int bs(int l,int r,int x)

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

算法笔面试宝典 文章被收录于专栏

算法笔面试真题解析

全部评论

相关推荐

牛客41406533...:回答他在课上学,一辈子待在学校的老教授用三十年前的祖传PPT一字一句的讲解,使用谭浩强红皮书作为教材在devc++里面敲出a+++++a的瞬间爆出114514个编译错误来学这样才显得专业
点赞 评论 收藏
分享
程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
985本硕1个中小厂of...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务