深度优先搜索
class Solution {
public:
vector<vector<int>>ans;
vector<int>path;
vector<bool>st;
vector<vector<int>> permute(vector<int>& nums) {
int n=nums.size();
path=vector<int>(n);
st=vector<bool>(n);
dfs(nums,0); //u表示位置
return ans;
}
void dfs(vector<int>&nums,int u){
if(u==nums.size()){
ans.push_back(path);
return;
}
for(int i=0;i<nums.size();i++){
if(!st[i]){
path[u]=nums[i];
st[i]=true;
dfs(nums,u+1);
st[i]=false;
}
}
}
};