leetcode 46. 全排列(Permutations)
目录
题目描述:
给定一个没有重复数字的序列,返回其所有可能的全排列。
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。示例:
输入: [1,2,3]
输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
解法:
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> res;
int sz = nums.size();
if(sz == 0){
return res;
}else if(sz == 1){
return {nums};
}else{
for(int i = sz-1; i >= 0; i--){
vector<int> tmp(nums.begin(), nums.begin() + i);
tmp.insert(tmp.end(), nums.begin() + i+1, nums.end());
vector<vector<int>> lst = permute(tmp);
int len = lst.size();
for(int j = 0; j < len; j++){
vector<int> _lst = lst[j];
_lst.push_back(nums[i]);
res.push_back(_lst);
}
}
return res;
}
}
};

更多精彩