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;
    }
};
posted @ 2026-04-11 22:41  rdcamelot  阅读(3)  评论(0)    收藏  举报