leetcode 47. Permutations II

来源:互联网 发布:淘宝代发货平台 编辑:程序博客网 时间:2024/04/28 12:52

class Solution {

public:

    vector<vector<int>> res;

    void dfs(vector<int> nums,vector<bool>&used,vector<int>& cur)

    {

        if(cur.size()==nums.size())

        {

            res.push_back(cur);

            return;

        }

        for(int i=0;i<=nums.size()-1;i++)

        {

            if(used[i]==1)

                continue;

            cur.push_back(nums[i]);

            used[i]=1;

            dfs(nums,used,cur);

            cur.pop_back();

            used[i]=0;

            while(nums[i]==nums[i+1])

                i++;

        }

    }

    vector<vector<int>> permuteUnique(vector<int>& nums) {

        int n=(int)nums.size();

        sort(nums.begin(),nums.end());

        vector<bool> used(n,false);

        vector<int> cur;

        dfs(nums,used,cur);

        returnres;

    }

};

原创粉丝点击