【发布时间】:2012-01-12 06:51:47
【问题描述】:
假设我有一个整数数组int a[] = {0, 1, ... N-1},其中N 是a 的大小。现在我需要为所有0 <= i < N 生成a 的所有排列,即a[i] != i。你会怎么做?
【问题讨论】:
-
你可以访问 STL,还是根本就不是 C++?
-
不,它不是 C++,但我可以用其他语言编写 next_permutation。问题是我是否可以生成 only “必需”排列而不生成其他排列。
-
如果你检查 perm 是否有错,你的效率不会太低:大约 N!/e 会通过检查。
标签: algorithm permutation