LeetCode--47. Permutations II

来源:互联网 发布:世熙传媒 知乎 编辑:程序博客网 时间:2024/06/16 11:48

Given a collection of numbers that might contain duplicates, return all possible unique permutations.

For example,
[1,1,2] have the following unique permutations:

[  [1,1,2],  [1,2,1],  [2,1,1]]

解决代码:

class Solution {public:    vector<vector<int>> permuteUnique(vector<int>& nums) {        vector<vector<int>> res;//结果        sort(nums.begin(), nums.end());        vector<int> resm;//单个结果        int len = nums.size();        permute(nums, res, resm, len);        return res;    }private:    void permute(vector<int> nums, vector<vector<int>>& res, vector<int>& resm, int len){        if(resm.size() == len)        {            res.push_back(resm);        }        else        {            for(int i = 0; i < nums.size(); i++)            {                if(i && nums[i]==nums[i-1])                    continue;                resm.push_back(nums[i]);                vector<int> temp = nums;                temp.erase(temp.begin()+i);                permute(temp, res, resm, len);                resm.pop_back();            }        }    }};
原创粉丝点击