一、调库函数
next_permutation
class Solution {
public:
vector<vector<int> > permute(vector<int>& num)
{
vector<vector<int>> res;
sort(num.begin(),num.end());
do
{
res.push_back(nums);
}while(next_permutation(num.begin(),num.end()));
return res;
}
};
二、自己实现
class Solution {
public:
void DFS(vector<int> &num, vector<int> &visited, vector<vector<int>> &res){
if (num.size() == visited.size()){
res.push_back(visited);
return;
}
vector<int>::iterator it;
for (int i = 0; i < num.size(); i++)
{
it= find(visited.begin(), visited.end(), num[i]);
if (it== visited.end())
{
visited.push_back(num[i]);
DFS(num, visited, result);
visited.pop_back();
}
}
return;
}
vector<vector<int> > permute(vector<int> &num)
{
vector<vector<int> > result;
if (num.empty()){
return res;
}
vector<int> visited;
DFS(num, visited, res);
return res;
}
};