您的位置:首页 > 其它

LeetCode-46-Permutations(DFS)-Medium

2016-01-10 14:27 375 查看
题意理解:

给定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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: