题解 | #有重复项数字的全排列#

有重复项数字的全排列

http://www.nowcoder.com/practice/a43a2b986ef34843ac4fdd9159b69863

##先给出全部结果,而后对结果进行排序,去重。

class Solution { public: void getOrder(vector<vector >&res,vector&num,int index){

    if(index==num.size()-1){
        res.push_back(num);
    }else{
        for(int i=index;i<num.size();i++){
            swap(num[i],num[index]);
            getOrder(res,num,index+1);
            swap(num[i],num[index]);
        }
    }
}
vector<vector<int> > permuteUnique(vector<int> &num) {
    sort(num.begin(),num.end());
    vector<vector<int> >res;
    getOrder(res,num,0);
    sort(res.begin(),res.end());
    res.erase(unique(res.begin(),res.end()),res.end());
    return res;
}

};

全部评论

相关推荐

07-02 10:44
门头沟学院 C++
码农索隆:太实诚了,告诉hr,你能实习至少6个月
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务