Permutations
回溯。返回所有的全排列
vector<vector<int> > permute(vector<int> &num) {
// Note: The Solution object is instantiated only once and is reused by each test case.
vector<vector<int>> res;
vector<int> tmp;
vector<bool> visited(num.size(),false);
dfs(0,num,visited,tmp,res);
return res;
}
void dfs(int cnt,vector<int> &num,vector<bool>& visited,vector<int>& tmp,vector<vector<int>>& res)
{
if(cnt==num.size())
{
res.push_back(tmp);
return;
}
for(int i=0;i<num.size();i++)
{
if(!visited[i])
{
visited[i] = true;
tmp.push_back(num[i]);
dfs(cnt+1,num,visited,tmp,res);
tmp.pop_back();
visited[i] = false;
}
}
}
浙公网安备 33010602011771号