【leetcode】Permutations

来源:互联网 发布:rpm安装java 编辑:程序博客网 时间:2024/06/03 09:33

Permutations

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:    vector<vector<int> > permute(vector<int>& nums) {        vector<vector<int> > result;        int N=nums.size();        if(N==1)        {            result.push_back(nums);        }        vector<vector<int> > all;//存储除了第一个数外的全排列        vector<int> inner; //number除去一个数之后的全排列        vector<int> temp; //记录inner        for(int i=0;i<N;i++)        {            //所有的数都依次当第一位,然后,剩余的数全排列            inner=nums;            inner.erase(inner.begin()+i);            all=permute(inner);            for(int j=0;j<all.size();j++)            {                temp=all[j];                temp.insert(temp.begin(),nums[i]);                result.push_back(temp);            }        }        return result;    }};
0 0
原创粉丝点击