leetcode---permutations---dfs

来源:互联网 发布:中超数据库 编辑:程序博客网 时间:2024/05/22 04:12

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;    }};
原创粉丝点击