// 库函数
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ret;
sort(nums.begin(), nums.end());
do {
ret.push_back(nums);
} while (next_permutation(nums.begin(), nums.end()));
return ret;
}
// DFS
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ret;
vector<int> tmp, vis(nums.size()+1);
function<void()> dfs = [&](){
int flag = 0;
for (auto &x : nums) {
if (!vis[x]) {
flag = vis[x] = 1;
tmp.push_back(x);
dfs();
vis[x] = 0;
tmp.pop_back();
}
}
if (!flag) ret.push_back(tmp);
};
dfs();
return ret;
}
全排列问题-算法题
最新推荐文章于 2024-07-06 12:26:17 发布