【问题标题】:Combinations Array Java组合数组 Java
【发布时间】:2011-03-05 19:59:30
【问题描述】:

给定一个任意维度的数组(例如 [1 2 3]),一个给出所有组合的函数,如

1 |

1 2 |

1 2 3 |

1 3 |

2 |

2 1 3 |

2 3 | ...

【问题讨论】:

  • 您想要组合还是排列?你说的是组合,但你分别列出了 123 和 213,这让我觉得你可能想要排列。
  • 排列也不起作用,因为“1”肯定不是“123”的排列。
  • 为什么不是 132 ?这似乎也是一个有效的组合。

标签: java arrays combinations


【解决方案1】:

因为我猜这是作业,所以我会尽量避免给出完整的答案。

假设您已经拥有大小为 n-1 的数组的所有组合(或排列,如果您正在寻找的话)。如果你有这个,你可以使用这些组合/排列作为形成新组合/排列的基础,通过以适当的方式向它们添加第 n 个元素。这就是计算机科学家称之为recursion 的基础(数学家喜欢将一个非常相似的想法称为induction)。

所以你可以编写一个方法来处理 n 情况,假设已经处理了 n-1 情况,你也可以检查来处理基本情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多