我有一个玩家列表,每个玩家都有薪水和等级(两个整数值)。
我必须找到第6个最大的6名玩家组合(他们的评级总和最大),并且他们的工资总和必须小于或等于50000。
例如,如果我有1,2,...,m的玩家列表,我目前正在做的是:
这显然是一种蛮力方法,适用于少数玩家。但目前我有140名玩家,产生了超过90亿的组合,并且需要花费太多才能完成。
有关如何更快地完成此操作的任何建议吗?
答案 0 :(得分:0)
以下是避免获得所有组合的方法。
这将使您的排名按降序排序,并且地图中的第一个键将是最高排名。如果您有多个具有相同排名的记录,请考虑将它们列为相同排名的列表。
如果您对排名有多个记录,请尝试添加他们的工资。
这需要一些耐心和一些好的测试才能转化为程序,但肯定会是最佳解决方案。