leetcode46
第一次写回溯的题,思想还是dfs,就是多了一步恢复原状态,之前好像也写过。每天做的有点少,得加油了
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>>ret;
backtrack(nums,0,ret);
return ret;
}
void backtrack(vector<int>& nums,int goal,vector<vector<int>>& ret)
{
if(goal==nums.size()-1)
{
ret.push_back(nums);
return;
}
for(int i=goal;i!=nums.size();++i)
{
swap(nums[i],nums[goal]);
backtrack(nums,goal+1,ret);
swap(nums[i],nums[goal]);
}
}
};
END