一、题目
二、代码
class Solution
{
public:
vector<int> path;
vector<vector<int>> return_vector;
//回溯
void track_back(vector<int>& nums)
{
int i,j;
std::cout<<"进入 "<<path.size()<<std::endl;
if(path.size()==nums.size())
{
//std::cout<<"长度符合 "<<std::endl;
return_vector.push_back(path);
return;
}
else
{
//std::cout<<"长度不符合 "<<std::endl;
vector<int>:: iterator it;
for(i=0;i<nums.size();i++)
{
it=find(path.begin(),path.end(),nums[i]); //去重
if(it==path.end()) //路径中不存在
{
path.push_back(nums[i]);
track_back(nums);
path.pop_back();
}
}
}
}
vector<vector<int>> permute(vector<int>& nums)
{
path.clear();
return_vector.clear();
track_back(nums);
return return_vector;
}
};