← 返回课程路线 第三阶段 · S3-03 · 60 分钟

有序才能对半缩小

这一课只练一件事:在已经排好序、具有 的区间里做 。先确认能不能二分,再维护 ,每次看 丢掉一半。用 [1, 3, 5, 7, 9] 找 7 走三步,再测首尾答案,并看区间不缩小会变成 。对答案二分、lower_bound 细节和三分查找是拓展。这里不会在浏览器里运行 C++。

必会:判断有序/单调才能二分;维护 left/right,比较中点后丢掉一半 建议掌握:测试目标在第一个或最后一个;说明区间不缩小会死循环 拓展:对答案二分、lower_bound 细节、三分查找,现在不用当硬门槛

任务 1:先选出什么时候才能二分

不是随便对半切。必须先有 ,再用 夹住可能有答案的区间。点不认识的词可看基础解释。

必会:能判断一道题是否适合二分。这里不会在浏览器里运行 C++,只练习选择和走过程。

在 [1, 3, 5, 7, 9] 里找 7,什么时候才能二分?单调性 · 必会

left 和 right 表示什么?左右边界 · 必会