Permutations 排列

来源:互联网 发布:网络棋牌游戏代理 编辑:程序博客网 时间:2024/06/06 09:57
class Solution {
public:
    void permunate_aux(vector<int> &num,int step,vector<vector<int>> &ret,vector<int> &tmp)
{
    if(step==num.size())
    {
        ret.push_back(tmp);
        return;
    }
    for(int i=step;i<num.size();i++)
    {
       if(step!=i)
       {
        swap(num[i],num[step]);
       }
        tmp.push_back(num[step]);
        permunate_aux(num,step+1,ret,tmp);
        tmp.pop_back();
        if(step!=i)
        {
        swap(num[i],num[step]);
        }
    }


}
    vector<vector<int> > permute(vector<int> &num) {
        sort(num.begin(),num.end());
        vector<vector<int>> ret;
        vector<int> tmp;
        permunate_aux(num,0,ret,tmp);
        return ret;
    }
};
0 0
原创粉丝点击