1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| class Solution { public: vector<vector<int>> ans; vector<int> path; vector<bool> st;
vector<vector<int>> permute(vector<int>& nums) { path.resize(nums.size(), 0); st.resize(nums.size(), false); dfs(nums, 0); return ans; }
void dfs(vector<int>& nums, int u){ if(u == nums.size()){ ans.push_back(path); return; }
for(int i = 0; i < nums.size(); i ++){ if(!st[i]){ path[u] = nums[i]; st[i] = true; dfs(nums, u + 1); st[i] = false; } } }
};
|