题意:生成排列数。
思路:DFS。
class Solution {
public:
vector <vector<int> > re;
vector<vector<int>> permute(vector<int>& nums) {
dfs(nums, 0);
return re;
}
int dfs(vector<int> sub, int k) {
if(sub.size() - 1 == k) {
re.push_back(sub);
return 0;
}
vector<int> temp;
int ch;
for(int i = k; i < sub.size(); ++ i) {
temp = sub;
ch = temp[k];
temp[k] = temp[i];
temp[i] = ch;
dfs(temp, k + 1);
}
return 0;
}
};
本文介绍了一个使用深度优先搜索(DFS)算法生成所有可能排列数的方法。通过递归地交换数组元素的位置来产生不同的排列组合,并将这些排列保存到结果集中。
6246

被折叠的 条评论
为什么被折叠?



