1. 思路
全排列,标准的dfs回溯题目
2.代码
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ret;
vector<int> temp(nums.size());
vector<bool> vis(nums.size());
return generate(nums, 0, ret, vis, temp);
}
vector<vector<int>>& generate(vector<int>& nums, int count, vector<vector<int>>& ret, vector<bool>& vis, vector<int>& temp)
{
if(count >= nums.size())
{
ret.push_back(temp);
return ret;
}
for(int i = 0; i < nums.size(); ++i)
{
if(vis[i])continue;
temp[count] = nums[i];
vis[i] = true;
generate(nums, count+1, ret, vis, temp);
vis[i] = false;
}
return ret;
}
};