全排列 class Solution { public: vector<vector<int> > result; void DFS(vector<int>& nums, int i, vector<int>& temp, vector<int>& flag) { int len = nums.size(); if (i == len-1) { result.push_back(temp); //temp.clear(); return; } for (int k = 0; k<nums.size(); ++k) { if (flag[k] == 0) { flag[k] = 1; temp.push_back(nums[k]); DFS(nums, i + 1, temp,flag); temp.pop_back(); flag[k] = 0; } } } vector<vector<int>> permute(vector<int>& nums) { int len = nums.size(); if(len==0) return result; vector<int> flag(len, 0); vector<int> temp; for (int i = 0; i<len; ++i) { flag[i] = 1; temp.push_back(nums[i]); DFS(nums, 0, temp,flag); temp.pop_back(); flag[i] = 0; } return result; } };