[leetcode] Permutations II

来源:互联网 发布:淘宝怎么把好评转差评 编辑:程序博客网 时间:2024/05/14 02:25

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], and [2,1,1].

class Solution {public:    vector<vector<int> > permute(vector<int> &num) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        set<vector<int> >ret;        int n=num.size();        _permute(num,n,n-1,ret);        return vector<vector<int> >(ret.begin(),ret.end());    }    void _permute(vector<int>& array,int n,int depth,vector<vector<int> >&ret){        if(depth==0){            ret.insert(array);            return;        }        for(int i=0 ; i<=depth ; i++){            swap(array[i],array[depth]);            _permute(array,n,depth-1,ret);            swap(array[i],array[depth]);        }        return;            }};


原创粉丝点击