链接:https://leetcode.com/problems/permutations/description/
Given a collection of distinct integers, return all possible permutations.
Example:
Input: [1,2,3] Output: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]
class Solution{
public:
vector<vector<int>> permute(vector<int>& nums)
{
vector<vector<int>> result;
vector<int> tmp;
sort(nums.begin(), nums.end());
dfs(nums,result,tmp);
return result;
}
void dfs(vector<int> &nums,vector<vector<int>> &res,vector<int> tmp)
{
if(tmp.size()==nums.size())
{
res.push_back(tmp);
return;
}
for(int i=0;i<nums.size();i++)
{
if(find(tmp.begin(),tmp.end(),nums[i])==tmp.end())
{
tmp.push_back(nums[i]);
dfs(nums,res,tmp);
tmp.pop_back();
}
}
}
};