46、全排列 I


class Solution {

    vector<vector<int>>res;
    vector<bool>used;
    void generate_permute(vector<int>&nums,int index,vector<int>&p)
    {
        if(p.size()==nums.size())
        {
            res.push_back(p);
            return;
        }
        for(int i=0;i<nums.size();i++)
        {
            if(used[i]==false)
            {
                p.push_back(nums[i]);
                used[i]=true;
                generate_permute(nums,index+1,p);
                p.pop_back();
                used[i]=false;
            }

        }
        

    }

public:
    vector<vector<int>> permute(vector<int>& nums) {

        vector<int>p;
        if(nums.size()==0)return res;
        //false 表示還沒有訪問過,true  表示已經訪問過
        used=vector<bool>(nums.size(),false);
        generate_permute(nums,0,p);
        return res;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章