leetcode-Permutations

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;
    }
};


你可能感兴趣的:(leetcode-Permutations)