Leetcode 46. Permutations

来源:互联网 发布:unity3d 设置技能cd 编辑:程序博客网 时间:2024/05/14 03:48

题意

生成一个数组的全派别

题解

用递归实现。每个位置的数字都能和它后面的所有数字交换的,一共有n!种。

代码

class Solution {public:    vector<vector<int> > result;    void gen_permutation(int pos, vector<int> &nums)    {        if(pos == nums.size())        {            result.push_back(nums);        }        else        {            for(int i = pos; i < nums.size(); i++)            {                swap(nums[i], nums[pos]);                gen_permutation(pos + 1, nums);                swap(nums[i], nums[pos]);            }        }    }    vector<vector<int>> permute(vector<int>& nums) {        gen_permutation(0, nums);        return result;    }};
0 0