y总视频:LeetCode暑期刷题打卡2019——Week1 二分专题_哔哩哔哩_bilibili
根据分界点将其分成两段,⽐如左边满⾜条件,右边不满⾜条件
右边满足条件,找到右半边第一个点
模板⼀:将[L,R]划分为[L,mid]和[mid+1,R]。
if mid在第⼆段时:[L,R]->[L,mid] 即R=mid
else mid在第⼀段时:[L,R]->[mid+1,R] 即L=mid+1
模板⼀中的mid向下取整: int mid=l+(r-l)/2;
左边满足条件,找到左半边最后一个点
模板⼆:将区间[L,R]划分为[L,mid-1]和[mid,r]。
if mid在第⼀段时:[L,R]->[mid,R] 即L=mid
else mid在第⼆段时:[L,R]->[L,mid-1] 即R=mid-1
模板⼆中的mid向上取整: int mid=l+(r-l+1)/2;
leetcode的题目69,35,34,74,153,33,278,162,287,275