题目链接:点击这里
class Solution {
public:
void dfs(int idx, vector<int>& nums, vector<int>& tmp, vector<vector<int>>& ans)
{
if(idx==nums.size())
{
ans.push_back(tmp);
return;
}
for(int i = 0; i < nums.size(); i++)
{
bool flag = true;
for(int k = 0; k < tmp.size(); k++)
{
if(nums[i]==tmp[k])
{
flag = false;
break;
}
}
if(flag)
{
tmp.push_back(nums[i]);
dfs(idx+1, nums, tmp, ans);
tmp.pop_back();
}
}
}
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ans; //记录结果
vector<int> tmp; //记录中间过程
dfs(0, nums, tmp, ans);
return ans;
}
};