LeetCode-Permutations

来源:互联网 发布:淘宝刷好评兼职骗局 编辑:程序博客网 时间:2024/06/06 09:32

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].
题意:求出一组数的全排
解题思路:对数字按位依次进行交换。

 void p(vector<int> nums,int n,vector<vector<int>>& ret)    {        if(n<nums.size()-1)        {                for(int j=n;j<nums.size();++j)                {                    vector<int> t=nums;                    int temp =t[n];                    t[n]=t[j];                    t[j]=temp;                    p(t,n+1,ret);                }        }        else        {            ret.push_back(nums);        }    }    vector<vector<int>> permute(vector<int>& nums) {        vector<vector<int>> ret;        if(nums.size()<2)        {            ret.push_back(nums);            return ret;        }        p(nums,0,ret);        return ret;    }
0 0