46. Permutations

来源:互联网 发布:淘宝店网址有说头吗 编辑:程序博客网 时间:2024/04/27 21:17

problem:

Given a collection of distinct 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],  [3,2,1]]
典型的深度搜索优先算法。

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


0 0
原创粉丝点击