提问人:ilua 提问时间:11/16/2023 更新时间:11/16/2023 访问量:29
如何优化 n 个数的递归排列函数 k 个元素
How to optimize my recursive permutation function of n numbers by k elements
问:
我是编程新手,所以我想知道是否有可能优化我的函数,该函数按字典顺序从 1 到 n 乘以 k 个数字排列。我试着用递归的方式写它:
#include <vector>
#include <iostream>
using namespace std;
void solve2(vector<int>& dp, vector<int>& num, vector<int>& used, int k, int n) {
if (!k) {
for (int i: dp) {
cout << num[i];
}
cout << '\n';
return;
}
for (int i = 0; i < n; i++) {
if (!used[i]) {
dp.push_back(i);
used[i] = 1;
solve2(dp, num, used, k - 1, n);
used[i] = 0;
dp.pop_back();
}
}
}
void init2() {
int n, k;
cin >> n >> k;
vector<int> dp, num, used(n);
for (int i = 1; i <= n; i++) {
num.push_back(i);
}
solve2(dp, num, used, k, n);
}
void init() {
int n, k;
cin >> n >> k;
vector<int> dp(k + 1, 0);
solve(dp, n, k);
}
答: 暂无答案
评论