Leetcode_Permutations II

来源:互联网 发布:自制4g网络信号增强器 编辑:程序博客网 时间:2024/05/29 18:55

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> > permuteUnique(vector<int> &num) {        sort(num.begin(),num.end());        vector<vector <int> > result;        dfs(num,result,0);        return result;    }private:    void dfs(vector<int> &num,vector<vector <int> > &result ,int cur ){        if(cur==num.size()-1){                        result.push_back(num);            return;        }else{            dfs(num,result,cur+1);           //自身节点无需交换            for(int i=cur+1;i<num.size();i++){                vector<int>::iterator it =num.begin();                if(find(it+cur,it+i,num[i])!=it+i)    //查重                continue;                int temp= num[cur];                num[cur]=num[i];                num[i]= temp;                dfs(num,result,cur+1);                temp= num[cur];                num[cur]=num[i];                num[i]= temp;            }        }                   }    };


0 0
原创粉丝点击