给定一个整数数组a、两个数字N和M,返回N一组整数,a使得每个组的和为M。
例如,说:
a = [1,2,3,4,5]N = 2M = 5
然后算法可以返回[2, 3], [1, 4]或[5], [2, 3]可能返回其他算法。
我可以在这里使用什么算法?
编辑:
我不知道这个问题是NP完全的。因此,如果我提供有关特定场景的更多详细信息,也许会有所帮助:
所以我正在尝试创建一个“匹配”应用程序。给定团队N数量和每个团队的玩家数量M,应用程序会侦听客户端请求。每个客户端请求都会给出客户端代表的玩家数量。因此,如果我需要 2 支 5 名球员组成的球队,那么如果 5 个客户端发送请求,每个请求分别代表 1、2、3、4、5 名球员,那么我的应用程序应该在 clients[1, 4]和 clients之间生成一场比赛[2, 3]。它还可以在[1, 4]和之间产生匹配[5];我真的不在乎。
一种暗示是,任何代表多于M或少于0玩家的客户端都是无效的。希望这可以简化问题。