LeetCode HOT100 - 全排列
也就是每一位选什么
选能选的
选好之后传下去,然后回溯,继续选择这一位的下一个能选的
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ans;
vector<int> cur;
vector<int> used(nums.size());
auto dfs = [&](this auto&& self) -> void {
if (cur.size() == nums.size()) {
ans.emplace_back(cur);
return;
}
for (int i = 0; i < nums.size(); ++i) {
if (used[i]) continue;
used[i] = true;
cur.emplace_back(nums[i]);
self();
cur.pop_back();
used[i] = false;
}
};
dfs();
return ans;
}
};

浙公网安备 33010602011771号