正解:贪心
解题报告:
这题似乎是可以二分水过的,,,但数据可以加强一下就能简单把二分卡住了,或者修改下空间限制什么的反正就很容易能卡住
所以这里介绍一个优秀的贪心做法,O(n)的时间复杂度和O(1)级别的空间复杂度就很美
首先二分还是能get的趴?就二分一个mid,对前面就能加就加对后面就能减就减,然后就做完了
这时候我们考虑一下二分出的这个mid的本质是什么?就是对每个数,它本来的取值只能是a[i],现在通过这个mid的存在,它可以取[a[i]-d,a[i]+d]范围内的所有值了,就相当于是对应一个区间了
然后题目就变成了,给一个若干条竖直块构成的图形,问从最左边开始走能否不向下一路走到最右
显然最低的要求就只要有一条平直的线能经过就欧克了,所以就只要最低点的最高和最高点的最低在同一高度就好,所以就
{x-mid}max={x+mid}min
可得mid=(xmax-xmin)/2
大概这样儿,over!
等下放代码QAQ!