题目
Given a collection of numbers, return all possible permutations.
For example,
[1,2,3] have the following permutations:
[1,2,3], [1,3,2], [2,1,3], [2,3,1],
[3,1,2], and [3,2,1].
求所有排列
代码:
class Solution {
vector<vector<int>> ans;
public:
void innerPermute(vector<int> &num,int first) //递归求解,排列,可以交换的位
{
int len=num.size();
if(first==len)
{
ans.push_back(num);
return;
}
for(int i=first;i<len;i++)
{
swap(num[first],num[i]);
innerPermute(num,first+1);
swap(num[first],num[i]);
}
}
vector<vector<int> > permute(vector<int> &num) {
ans.clear();
innerPermute(num,0);
return ans;
}
};
本文介绍了一种使用递归算法求解给定整数集合的所有可能排列的方法。通过交换元素位置来生成不同的排列组合,并利用递归进行深度优先搜索。
6246

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



