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%内容,订阅专栏后可继续查看/也可单篇购买
算法笔面试宝典 文章被收录于专栏
算法笔面试真题解析
