[LeetCode] Permutations

来源:互联网 发布:ubuntu下ros安装过程 编辑:程序博客网 时间:2024/05/02 04:45

Recursion with backtracking.

class Solution {public:    void helper(vector<vector<int> > &result, vector<int> &num, vector<int> cur, vector<bool> used, int n) {        if(n==num.size()) {            result.push_back(cur);            return;        }        for(int i=0;i<num.size();i++) {            if(!used[i]) {                cur[n]=num[i];                used[i]=true;                helper(result, num, cur, used,n+1);                used[i]=false;            }        }    }    vector<vector<int> > permute(vector<int> &num) {        vector<int> cur;        vector<bool> used;        for(int i=0;i<num.size();i++) {            cur.push_back(0);            used.push_back(false);        }        vector<vector<int> > r;        helper(r, num, cur, used, 0);        return r;    }};


0 0