Java 寻找一张手牌中加起来多达15个的组合

Java 寻找一张手牌中加起来多达15个的组合,java,algorithm,Java,Algorithm,我正在写一个处理卡片和手牌的程序。一手牌有五张牌。我想知道什么是一个好的算法来决定哪种组合的卡加起来15。国王,王后,杰克,算作10,王牌算作1。1)拿到手 2) 通过手打圈 2a)每次迭代,将车辆的价值添加到运行总数中。 2b)如果超过15,可以退出此迭代这与子集和非常相似,我最近在这里回答了这个问题: 您需要做的唯一调整是跟踪从可能[i]到可能[i+n]使用的卡。您可以使用第二个数组跟踪这些,我们称之为card\u used,然后将card\u used[i+n]设置为用于从i到i+n的卡的

我正在写一个处理卡片和手牌的程序。一手牌有五张牌。我想知道什么是一个好的算法来决定哪种组合的卡加起来15。国王,王后,杰克,算作10,王牌算作1。

1)拿到手
2) 通过手打圈
2a)每次迭代,将车辆的价值添加到运行总数中。
2b)如果超过15,可以退出此迭代

这与子集和非常相似,我最近在这里回答了这个问题:

您需要做的唯一调整是跟踪从
可能[i]
可能[i+n]
使用的卡。您可以使用第二个数组跟踪这些,我们称之为
card\u used
,然后将
card\u used[i+n]
设置为用于从
i
i+n
的卡的引用/索引。然后在最后,您可以通过回溯列表
card\u used
来检索用于达到15之和的卡片列表(假设
可能[15]
为真)