首页 > 其他 > 详细

一组数分成两组,差的绝对值最小。

时间:2014-02-03 11:17:59      阅读:406      评论:0      收藏:0      [点我收藏+]

一组数分成两组,差的绝对值最小。

这个问题是前段时间面试完美的时候被问到的。 当时没答出来,后来一直在想这个问题。 在游戏中,这个问题可以用在随机战场分组上面。 根据每个角色的装备,等级,职业等等属性,计算每个角色的“战斗力”, 并找出实力最近的两组。

今天吃饭的时候无意中又想起这个问题,并试想了一下问题的答案:

首先,将每个玩家的战斗力从大到小排序,记为Pi (i = [1,n]), 然后将P1放到A组。 此时A组和B组的差距是P1。

为了弥补两组的差距,将剩下的P2--Pm个玩家放到B组,直到B组的总和大于或等于A组,如此循环往复,直到某一组人数满,将剩余的人添加到人数不满的一组,就能得到战斗力总和相差最小的两组人。

一组数分成两组,差的绝对值最小。

原文:http://www.cnblogs.com/glshader/p/3537252.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!