田忌赛马870变体
Arrays.sort() lambda貌似只能用于integer[],不能用于int[], 要写,(integer a, integer b)-
逆序加上 Collectiona.reverseOrder()
田忌赛马是排序从最快的马开始,可以赢就赢,不可以赢,就用垫底的应付,一对一,
但是变体就是数量不同
那么显然,比如
1 -1-1-8
0-6-7和加油包2
2-6-7与0-6-9
所以应该从最小的开始比
选出加油的和不加油的,可以赢的最小值
但是也有问题
比如
1-8
0-5-7和2
这样2-5-7就不如0-5-9了
因此必须得分情况
第一,当对方数量更多的时候,你只需要比较和你一样的靠左的即可
第二,当对方数量一样或者更少的时候,就变成了田忌赛马
所以!不是从对方最快的开始,而是截取小于等于你的数量的最大值
比如1-1-1-8,你只有三个,那就只比较1-1-1即可。
然后就是按照最大值,和加上加油包的,选一个取胜的最小值出战,保存实力即可!…
比如6-7
6-7和2,6-7-8-9,排出8即可,此时只剩下7了
OK
逆序加上 Collectiona.reverseOrder()
田忌赛马是排序从最快的马开始,可以赢就赢,不可以赢,就用垫底的应付,一对一,
但是变体就是数量不同
那么显然,比如
1 -1-1-8
0-6-7和加油包2
2-6-7与0-6-9
所以应该从最小的开始比
选出加油的和不加油的,可以赢的最小值
但是也有问题
比如
1-8
0-5-7和2
这样2-5-7就不如0-5-9了
因此必须得分情况
第一,当对方数量更多的时候,你只需要比较和你一样的靠左的即可
第二,当对方数量一样或者更少的时候,就变成了田忌赛马
所以!不是从对方最快的开始,而是截取小于等于你的数量的最大值
比如1-1-1-8,你只有三个,那就只比较1-1-1即可。
然后就是按照最大值,和加上加油包的,选一个取胜的最小值出战,保存实力即可!…
比如6-7
6-7和2,6-7-8-9,排出8即可,此时只剩下7了
OK
全部评论
相关推荐
故事和酒66:让每一颗种子找到合适自己的生长方式,最终绽放出独一无二的花朵,这远比所有人都被迫长成同一棵“参天大树”的世界,更加美好和富有生机。这是社会和环境的问题,而不是我们的问题。然而就是在这样的环境中,楼主依然能突破自我,逆势成长,其中的艰辛可想而知。这一路的苦难终究会化作你成长的养料
点赞 评论 收藏
分享