您的位置:首页 > 其它

leetcode---permutations---dfs

2017-09-22 12:02 337 查看
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 {
public:
void dfs(int dep, int n, vector<vector<int> > &ans, vector<int> &num)
{
if(dep >= n)
{
ans.push_back(num);
return;
}

for(int i=dep; i<n; i++)
{
swap(num[i], num[dep]);
dfs(dep+1, n, ans, num);
swap(num[i], num[dep]);
}
}

vector<vector<int> > permute(vector<int> &num)
{
int n = num.size();
vector<vector<int> > ans;
dfs(0, n, ans, num);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: