牛牛的揠苗助长

牛牛的揠苗助长

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数组中位数时取到最小值。

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务