大家好像都在转载这篇...写的不错
http://blog.youkuaiyun.com/tuantuanls/article/details/8717262
ps.
//这样写递归的话会清楚一些
class Solution {
public:
vector<vector<int> > permute(vector<int> &num) {
vector<vector<int>> result;
int N = num.size();
if(N==1)
{
result.push_back(num);
return result;
}
vector<vector<int>> post;
vector<int> cur;
vector<int> tmp;
for(int i=0;i<N;i++)
{
cur = num;
cur.erase(cur.begin()+i);
post = permute(cur);
add(num[i],result,post);
}
return result;
}
void add(int v, vector<vector<int>>& result, vector<vector<int>>& post){
for(int i=0;i<post.size();i++){
post[i].insert(post[i].begin(),v);
result.push_back(post[i]);
}
}
};
本文详细介绍了一种使用递归实现全排列的算法,并提供了清晰的C++代码示例。通过逐步分解问题并展示如何构建解决方案,使得读者能够更好地理解递归算法的工作原理。
6246

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



