前置知识
注:二分的时间复杂度为 (忘写了
思路
在二分时二分的内容不一定是数组内容,也可以是题目答案。
设二分时的左边界为 ,右边界为
,设
(这一步和二分查找一样
- 如果
满足条件(可以成为答案),则把
的值赋值给
;
- 如果
不满足条件(不可以成为答案),则把
的值赋值给
;
- 如果
或
,则
为所有合法答案中的最大值。
取值
每一道题的取值不一样,正常是取 为1,
为答案最大值
时间复杂度
时间复杂度为 (
为判断
是否满足条件的时间复杂度,
为答案最大可能值)
代码
每道题的代码都不一样(主要是判断 是否满足条件的部分不一样),
所以就不贴了。