题意理解:
给定vector,其中的元素均为唯一的,求解vector中元素所有的排列方式;
题目分析:
典型的DFS
解题代码:
class Solution {
private:
vector<vector<int>> ans;
void dfs(vector<int> &preAns, vector<int> &subNums){
if(subNums.size()==0){
ans.push_back(preAns);
return;
}
int size=subNums.size();
for(int i=0; i<size; i++){
int n=subNums[i];
vector<int> tPreAns(preAns);
tPreAns.push_back(n);
vector<int> tSubNums(subNums);
tSubNums.erase(find(tSubNums.begin(), tSubNums.end(),n));
dfs(tPreAns, tSubNums);
}
}
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<int> pre;
dfs(pre, nums);
return ans;
}
};