【发布时间】:2020-11-08 18:27:24
【问题描述】:
我有一个整数数组,例如:a[1,2,3]。我想获得这些数字的所有可能组合,它们不会重复,可能是递归。
我在这里看到了用字符串完成的类似操作:Get all combinations without duplicates,但不知道如何在不使用任何标准算法的情况下使其适应整数。
所以我想要这样的输出:{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3}
提前致谢!
【问题讨论】:
-
对于排列使用
std::next_permutation,对于组合也使用它;) -
@idclev463035818 标签
recursion(和其他线索)表明这必须在不使用标准算法的情况下完成 -
cppreference 的 可能的实施 会议可能会为您提供一些关于如何从头开始实施您的版本的线索。
-
@VladFeinstein 您也可以将
std::next_permutation与递归一起使用。我知道练习经常有奇怪的要求,比如不允许标准算法,但是当 OP 没有提到它们时,这并不能让我断言这些奇怪的要求。如果没有标准算法,问题中应该提到它 -
是的,所有标准算法都已出局。感谢您告诉我,因为我不知道...我从这里得到了一些不错的代码:geeksforgeeks.org/heaps-algorithm-for-generating-permutations 我只需要以某种方式对其进行修改,它还可以输出不使用所有数字的可能性。
标签: c++ arrays recursion integer combinations