class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
int n=nums.size();
vector<int> path(n),on_path(n);
vector<vector<int>> res;
function<void(int)> dfs=[&](int i){
if(i==n){
res.push_back(path);
return ;
}
else{
for(int j=0;j<n;j++){
if(!on_path[j]){
on_path[j]=true;
path[i]=nums[j];
dfs(i+1);
on_path[j]=false;
}
}
}
};
dfs(0);
return res;
}
};
每日一题(leetcode46):全排列--回溯+dfs
最新推荐文章于 2024-07-08 22:12:26 发布