- 不调用next_permutation()
1 bool used[MAX_N]; 2 int perm[MAX_N]; 3 4 // 生成{0, 1, 2, 3, ..., n-1}的n!种排列 5 6 void permutation(int pos, int n) { 7 if (pos == n) { 8 // 这里写需要对perm进行的操作 9 retrun ; 10 } 11 12 // 针对perm的第pos个位置,究竟使用0~n-1的哪一个进行循环 13 for (int i = 0; i < n; i++) { 14 if (!used[i]) { 15 perm[pos] = i; 16 // i已经被使用了,所以把标志设置为true 17 used[i] = true; 18 permutation(pos + 1, n); 19 // 返回之后把标志复位 20 used[i] = false; 21 } 22 } 23 return ;
- 调用next_permutation()
1 #include <algorithm> 2 3 // 即使有重复的元素也会生成所有的排列 4 // next_permutation是按照字典序来生成下一个排列的 5 int perm[MAX_N]; 6 7 void permutation(int n) { 8 for (int i = 0; i < n; i++) 9 perm[i] = i; 10 do { 11 // 这里写需要对perm进行的操作 12 } while (next_permutation(perm, perm + n)); 13 // 所有的排列都生成后,next_permutation会返回false 14 return ; 15 }
相关文章
- 10-23C语言中特殊的指针[使用禁忌]
- 10-23Apache beam中的便携式有状态大数据处理
- 10-23k8s删除Terminating状态的命名空间
- 10-23Kubernetes强制删除一直处于Terminating状态的pod。
- 10-23k8s 删除几种Terminating 状态的pod
- 10-23[kubernetes]-namespace 处于Terminating状态的处理方法
- 10-23特殊的双下方法
- 10-23python中特殊参数self的作用
- 10-23PSD 学位涵义 Poor, Smart and Deep desire to become rich 的缩写,不是真正的学位认证,是对一种心理状态的形容,所谓PSD学位是形容那些贫穷,但是很聪明,很深…_●.×
- 10-23一直深深困扰我的问题——hadoop 重启集群后,之前运行的job运行状态都丢失了