P46 全排列
今天的题很简单,一道dfs的题目

class Solution {
public:
void dfs(int x,vector<int> &ras,vector<vector<int>> &ans,vector<int> &k,vector<int> &st){
if(x == ras.size()){
ans.push_back(k);
return ;
}
for(int i = 0;i < ras.size();i++){
if(!st[i]){
k.push_back(ras[i]);
st[i] = true;
dfs(x + 1, ras, ans, k, st);
k.pop_back();
st[i] = false;
}
}
}
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ans;
int len = nums.size();
vector<int> k;
vector<int> st(len, false);
dfs(0 , nums , ans, k, st);
return ans;
}
};

之前刷算法题的时候经常做这种dfs 的题目。
当时刷洛谷,航电什么的 , 力扣上的题不推荐使用全局变量, 和竞赛的题不同,参数有点多,反应了半天。(越来越菜了)OvO