看到logn的复杂度就知道这货是用二分做的。
上午那个分析不太直观。重写。
考察一下某个T[i]和它的下标i的变化关系。
当 T[i] > i 的时候,我们可以想象,在T[i]后面的那些元素,譬如说,某个T[k],T[k] 与 k 的距离|T[k] - k|绝对不会小于|T[i] - i|,因为i的增长率是每向右一个数就增加1,而T[i]就算以最慢的速度增长(也是每次增加1),i也没办法追上T[i]
所以,当我们发现 T[i] > i的时候,马上可以放弃 i 后面的解空间。
当T[i] < i 的时候,类似的分析方法,可以得到结论:当我们发现 T[i] < i的时候,马上可以放弃 i 前面的解空间。
二分的思路就出来了。