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;
}
};