码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode46:Permutations

时间:2015-06-04 15:50:20      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:leetcode   permutate   

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

LeetCode46:Permutations

标签:leetcode   permutate   

原文地址:http://blog.csdn.net/u012501459/article/details/46361077

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!