非常强;
void dfs(int index) {
if (index == n) {
vector<int> vec;
for (int i : dend) {
vec.push_back(i);
}
for (int i = de.size() - 1; i >= 0; i--) {
vec.push_back(de[i]);
}
vecs.push_back(vec);
return;
}
if (de.empty()) {
de.push_back(vec[index]);
dfs(index + 1);
}
else {
int si = de.size();
for (int i = 0; i <= si; i++) {
if (i != 0) {
dend.push_back(de.back());
de.pop_back();
}
de.push_back(vec[index]);
dfs(index + 1);
de.pop_back();
}
int nn = dend.size();
for (int i = nn - 1; i >= nn-si; i--) {
de.push_back(dend[i]);
}
for (int i = 0; i < si; i++) {
dend.pop_back();
}
}
}

京公网安备 11010502036488号