【问题标题】:Finding all possible sums of a set查找集合的所有可能和
【发布时间】:2014-08-06 16:34:49
【问题描述】:

我目前正在寻找有关如何使用这些规则找到一组数字的所有可能总和的想法。我有这些数字可以使用,我想找到所有可能的总和,这样你就只能使用一个数字,最多 4 次,每次你选择 7 个这些数字。

{ 0、1、5、22、98、453、2031、8698、22854、83661、262349、636345 和 1479181 }

可接受的例子是

0 + 0 + 0 + 0 + 83661 + 83661 + 2031

不可接受的例子是

0 + 0 + 0 + 0 + 0 + 83661 + 2031

我能想到的唯一方法是一系列嵌套循环,但我也遇到了麻烦。是否有任何其他选择可以做到这一点。我正在使用 Java,但我认为这并不重要。

【问题讨论】:

  • 你有没有想过使用递归来做这件事?这可能最适合您的目的。
  • 应该有用于查找所有组合的算法——即如果你有一个集合,找到所有正好有 7 个元素的子集。现在使用包含原始集合中每个元素的 4 个副本的多集合来执行此操作。 (但这会给你带来很多重复的子集......)

标签: java arrays set


【解决方案1】:

您可以通过构建一个新的元素列表来实现这一点,该列表包含给定集合的每个元素重复 4 次。然后使用 DFS 策略方法来构建可能的总和组合。想知道如何实现 DFS 检查this answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多