题目:
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]
, and [3,2,1]
.
解题思路:
运用递归解之。
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> res;
if(nums.size()<=1){
res.push_back(nums);
return res;
}
for(int i=0;i<nums.size();i++){
vector<int> tmp = nums;
vector<vector<int>> tmp_res;
tmp.erase(tmp.begin()+i);
tmp_res = permute(tmp);
for(int j=0;j<tmp_res.size();j++)
{
tmp_res[j].insert(tmp_res[j].begin(), nums[i]);//插入头部
//tmp_res[j].push_back(nums[i]); 插入尾部
res.push_back(tmp_res[j]);
}
}
return res;
}
};