1 class Solution 2 { 3 vector<vector<int>> ans; 4 vector<int> temp; 5 vector<bool> st; 6 public: 7 vector<vector<int>> permute(vector<int>& nums) 8 { 9 st = vector<bool>(nums.size(),false); 10 dfs(nums,0); 11 return ans; 12 } 13 14 void dfs(vector<int>& nums,int cur) 15 { 16 if(cur == nums.size()) 17 { 18 ans.push_back(temp); 19 return; 20 } 21 22 //注意i = 0而不是为cur 23 for(int i = 0;i < nums.size();i ++) 24 { 25 if(!st[i]) 26 { 27 st[i] = true; 28 temp.push_back(nums[i]); 29 dfs(nums,cur + 1); 30 31 temp.pop_back(); 32 st[i] = false; 33 } 34 } 35 } 36 };
原文:https://www.cnblogs.com/yuhong1103/p/12518431.html