您的位置:首页 > 其它

[Leetcode] Permutations

2013-02-15 01:37 344 查看
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]
.

Reference: http://exceptional-code.blogspot.com/2012/09/generating-all-permutations.html

/article/8099797.html

class Solution {
public:
vector<vector<int> > permute(vector<int> &num) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<vector<int> > result;
dfs(result,num,0);
return result;
}

void dfs(vector<vector<int> > &result, vector<int> &num, int depth)
{
if(depth==num.size())
{
result.push_back(num);
}

for(int i=depth;i<num.size();i++)
{
swap(num[i],num[depth]);//DFS is implemented in another way here.
dfs(result,num,depth+1);
swap(num[i],num[depth]);
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: