#include<vector>
#include<algorithm>
#include<iostream>
using namespace std;
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums){
vector<vector<int>> res;
backtrack(nums,res,0);
return res;
}
void backtrack(vector<int> &nums, vector<vector<int>> &res,int i){
if(nums.size()==i)
res.push_back(nums);
for(int j=i;j<nums.size();j++) {//j的初始值是i
swap(nums[i],nums[j]);
backtrack(nums,res,i+1);
swap(nums[i],nums[j]);
}
}
};
int main(){
Solution s;
vector<int >nums ={1,2,3};
vector<vector<int>> res;
res=s.permute(nums);
for(int i=0;i<res.size();i++){
for(int j=0;j<res[i].size();j++){
cout<<res[i][j]<<'\t';
}
cout<<endl;
}
}
转载:已经忘记出处呢