牛牛的揠苗助长

牛牛的揠苗助长

http://www.nowcoder.com/questionTerminal/70063f9318f9464e9340d8e0859085bc

方法:二分答案
合理性:假设K天能恰好能解决问题,那么K+1必然也行(可以把k+1天增长的那个用魔法减去),所以K天之后都是可以的。
现在二分答案:假设第K天可以,那么可以在O(N)的复杂度从a数组里得到不使用魔法的b数组。(例如 3 3 5 经过 2 天 变成 4 4 5)
然后现在考虑使用魔法,把b数组中每个值都变成了x,所需的魔法次数为|b1 - x| + |b2 - x| + ... + |bn - x|,考虑到贪心,只要上述公式的最小值小于等于K次魔法就可以,所以第K天是否成立的依据是 |b1 - x| + |b2 - x| + ... + |bn - x| 的最小值(x为数轴上任意一点) <= K。
x取b数组中位数时取到最小值。

全部评论

相关推荐

整顿职场的柯基很威猛:这种不可怕,最可怕的是夹在一帮名校里的二本选手,人家才是最稳的。
点赞 评论 收藏
分享
感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务