我正在做一个名为Thirty的骰子游戏,用Java编写。我有一个像[1,3,4,5,5,6]这样的骰子值的数组。从那个数组中,我希望能够找到给定数量的每个组,但每个骰子只能计算一次。例如,如果我有数组[1,3,4,5,5,6]并且想要找到等于12的每个组,那么这将给我例如1 + 5 + 6 = 12和3+ 4 + 5 = 12。检查数组中的总和Java
而且有一个像[1,1,1,1,2,6]这样的例子,我会得到1 + 1 + 1 + 1 + 2 + 6 = 12。
总是会有6个骰子,但我正在寻找的总和可以是4和12
之间的任何一个人可以帮我吗?我真的没有任何代码可以提供,只会令人困惑,根本没有帮助。
我觉得这个问题可以用贪心算法来解决,看看http://www.tutorialspoint.com/data_structures_algorithms/greedy_algorithms.htm – dty
你应该在图形考虑寻找中,每个数字是图中的节点及其邻居是其他节点。然后,通过在每个节点上进行修改的宽度优先搜索来使用强力检查每个单一组合,以查看它是否等于总和。 –
相关:http://codereview.stackexchange.com/questions/36214/find-all-subsets-of-an-int-array-whose-sums-equal-a-given-target –