您的位置:首页 > 其它

leetcode 47. Permutations II

2017-11-01 01:27 417 查看
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);

        return
res;

    }

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: