46. 全排列
LeetCode刷题打卡第029天 (第1篇)20210807
代码
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int> > ans;
backtrack(nums,0,ans); //传递参数,代表第0层
return ans;
}
void backtrack(vector<int> &nums,int depth,vector<vector<int> >&ans){
if(depth==nums.size()) { //根据树的知识,可以得当触底时进行返回
ans.push_back(nums);
return;
}
for(int i=depth;i<nums.size();i++){
swap(nums[i],nums[depth]);
backtrack(nums,depth+1,ans);
swap(nums[i],nums[depth]);
}
}
};