一、题目
二、代码
class Solution
{
public:
vector<vector<int>> return_vector;
vector<int> path;
void back_track(int start_point,vector<int>& nums)
{
int i;
vector<int>::iterator it;
if(path.size()==nums.size()) return_vector.push_back(path);
if(path.size()>nums.size()) return;
for(i=start_point;i<nums.size();i++)
{
it=find(path.begin(),path.end(),nums[i]);
if(it!=path.end()) continue;
path.push_back(nums[i]);
back_track(0,nums);
path.pop_back();
}
}
vector<vector<int>> permute(vector<int>& nums)
{
return_vector.clear();
path.clear();
back_track(0,nums);
return return_vector;
}
};
三、运行结果