一、思路:
回溯算法,和其它回溯算法区别还蛮大的,这道题遍历我当时还真没想到,是借鉴别人的思路
二、C++代码:
class Solution {
public:
vector<vector<int>>res;
vector<vector<int>> permute(vector<int>& nums) {
vector<int>resList;
backTrack(nums, resList);
return res;
}
void backTrack(vector<int>&nums, vector<int>resList) {
if (nums.size() == resList.size()) {
res.push_back(resList);
return;
}
for (int i = 0; i < nums.size(); i++)
{
if (find(resList.begin(), resList.end(), nums[i]) == resList.end()) {
resList.push_back(nums[i]);
backTrack(nums, resList);
resList.pop_back();
}
}
}
};