简单回朔题。
class Solution {
public:
void permute(vector<int>& nums,vector<int> visit,vector<int>& temp,vector<vector<int>>& result)
{
if(temp.size()==nums.size())
result.push_back(temp);
else
{
for(int i=0;i<nums.size();i++)
{
if(visit[i]==0)
{
temp.push_back(nums[i]);
visit[i]=1;
permute(nums,visit,temp,result);
visit[i]=0;
temp.pop_back();
}
}
}
}
vector<vector<int>> permute(vector<int>& nums) {
vector<int> visit(nums.size(),0);
vector<int> temp;
vector<vector<int>> result;
permute(nums,visit,temp,result);
return result;
}
};