LeetCode46:Permutations

来源:互联网 发布:网络虚拟市场 编辑:程序博客网 时间:2024/05/22 17:21
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;        premuteRe(nums,0,result);        return result;    }    void premuteRe(vector<int> & nums,int offset,vector<vector<int>> &result)    {        if(nums.size()==offset+1)        {            result.push_back(nums);            return ;        }        vector<int>::iterator base=nums.begin()+offset;        vector<int>::iterator iter=base;        for(;iter!=nums.end();iter++)        {            swap(*base,*iter);            premuteRe(nums,offset+1,result);            swap(*base,*iter);        }    }};

runtime:12ms

0 0
原创粉丝点击