(1) 首先找到数组的中间值,mid=(left+right)>>1,区间[left, right]被划分成[left, mid]和[mid + 1, right];如果是mid = l + r + 1 >> 1,区间[left, right]被划分成[left, mid - 1]和[mid, right]。
(2) 然后通过check(mid)判断中间值是不是满足这个性质,check是根据不同的题型编写的。
(3) 最后就能使用折半,缩小区间了,如果区间缩到了1,那么那个也就是答案。
微信扫一扫
相关推荐