代码随想录 Leetcode47. 全排列 II

题目:

代码随想录 Leetcode47. 全排列 II_第1张图片


代码(首刷自解 2024年2月6日):

class Solution {
private:
    vector> res;
    vector path;
public:
    void backtracing(vector& nums, vector& used1, vector& used2) {
        if (path.size() == nums.size()) {
            res.push_back(path);
            return;
        }

        for (int i = 0; i < nums.size(); ++i) {
            if (i > 0 && nums[i] == nums[i - 1] && used1[i - 1] == true) continue;
            if (used2[i] == true) continue;
            used1[i] = true;
            used2[i] = true;
            path.push_back(nums[i]);
            backtracing(nums, used1, used2);
            path.pop_back();
            used2[i] = false;
            used1[i] = false;
        }
        return;
    }
    vector> permuteUnique(vector& nums) {
        vector used1(nums.size(), 0);
        vector used2(used1);
        sort(nums.begin(), nums.end());
        backtracing(nums, used1, used2);
        return res;
    }
};

你可能感兴趣的:(#,leetcode,---medium,算法)