leetcode-Permutations

来源:互联网 发布:认识数据库管理 编辑:程序博客网 时间:2024/06/12 00:34

Difficulty: Medium

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 {    vector<vector<int> > res;    void helper(vector<int> &nums,int n,int cur){        if(cur==n){            res.push_back(nums);            return;        }        for(int i=cur;i<n;++i){            if(cur!=i)                swap(nums[cur],nums[i]);            helper(nums,n,cur+1);            if(cur!=i)                swap(nums[cur],nums[i]);        }            }public:    vector<vector<int>> permute(vector<int>& nums) {        if(nums.empty())            return res;        helper(nums,nums.size(),0);        return res;    }};


0 0