来源: y总初级班视频课
写二分的步骤 (二分小于某个数的最大的数)
- 二分(左右区间)的范围
- 写模板
- 设计check函数,使得我们的答案在边界位置
- 如果写的是l=mid ,更新int mid = (l+r+1)/2;其他则不用。
下面是在 [l, r]区间内查找比a[i]小的数字中最大的数字的位置
int l = 0, r = len;
while (l < r)
{
int mid = l + r + 1 >> 1;
if (a[mid] < a[i]) l = mid;
else r = mid - 1;
}
emmm,思想是dp,不过我觉得这个二分讲的好好啊,所以,嘻嘻嘻
emm这是Dp啊
视频