算法思路:假设目标值在闭区间[l, r]中, 每次将区间长度缩小一半,当l = r时,我们就找到了目标值。
模板一
将区间划分为 [l , mid] 和 [mid + 1 , r] , 这时候只要更新 l = mid + 1 或者 r = mid , mid 不需要加一
1 | while l < r: |
模板二
将区间划分为 [l , mid - 1] 和 [mid , r] , 这时候只要更新 l = mid 或者 r = mid - 1 , 为了防止死循环,mid 需要加一
1 | while l < r: |