知识点:二分
难度:4
一开始看的时候觉得这个题就是二分,但是二分答案的判定函数不是那么好写,于是想了又想,正好今天看了尺取法,于是想出来一个贪心和尺取法结合的方法,我们由城市得到区间,其实就是往区间里面放点,点可以给区间公用,保证最后所有的区间都有点,我给区间排序的方法就是用的区间贪心,但是这里的点不太一样,点都是给定的,区间贪心模型里面的点是任意选的,于是我想到了尺取,左下标是区间,右下标是点,下面的按照尺取法的解题步骤,
对于刚进入循环的时候,我们要写两个while循环的函数,来找右下标的位置,找到在区间范围里面的最后的一个点,因为点可能一开始不在区间里面,所以要写两个while循环,把在外面的情况考虑进去,
然后是我们判断看是不是要退出,如果右下标到了最后了也没在区间里面那么返回错,
然后这时是满足情况的,所以我们要找到最后一个满足的区间,也就是我们要遍历左端点,如果左端点到n了,那么就可以返回true了,
写了这么有水平的代码,然后提交上去,发现过了,十分惊喜,因为自己的判定函数是结合了贪心和尺取算法的,但是我去看了看题解,傻眼了,这是一道根本不用这么复杂的题,对于每个城市,负责它的肯定就是离他最近的电视塔,所以我们遍历城市,找出离他最近的电视塔,这里分类讨论一下就好,每个城市求出最近距离之后更新最大值,这个最大值就是答案,
哎,本