LeetCode 46 - Permutations

来源:互联网 发布:Java加密解密 面试 编辑:程序博客网 时间:2024/05/27 06:53

Permutations

Given a collection of distinct 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].

My Code

class Solution {public:    void doPermute(vector<vector<int> >& res, vector<int> r, vector<int> v)    {        int size = v.size();        if (size == 1)        {            r.push_back(v[0]);            res.push_back(r);            return;        }        for (int i = 0; i < size; i++)        {            vector<int> rr(r);            vector<int> vv(v);            rr.push_back(v[i]);            vv.erase(vv.begin() + i);            doPermute(res, rr, vv);        }    }    vector<vector<int> > permute(vector<int>& nums) {        vector<vector<int> > res;        vector<int> r;        vector<int> v(nums);        doPermute(res, r, v);        return res;    }};
Runtime: 20 ms

0 0
原创粉丝点击