
- class Solution {
- public:
- vector
int>> ret; - vector<int> path;
- bool check[7];
-
- void dfs(vector<int>& nums)
- {
- if(nums.size() == path.size())
- {
- ret.push_back(path);
- return;
- }
- for(int i = 0;i < nums.size();i++){
- if(check[i] == false)
- {
- path.push_back(nums[i]);
- check[i] = true;
- dfs(nums);
- //回溯
- path.pop_back();
- check[i] = false;
- }
- }
- }
-
- vector
int>> permute(vector<int>& nums) { - dfs(nums);
- return ret;
- }
- };



- class Solution {
- public:
- vector<int> path;
- vector
int>> ret; - vector
int>> subsets(vector<int>& nums) { - dfs(nums,0);
- return ret;
- }
- void dfs(vector<int>& nums,int pos)
- {
- ret.push_back(path);
- for(int i = pos;i < nums.size();i++){
- path.push_back(nums[i]);
- dfs(nums,i+1);
- path.pop_back();
- }
- }
- };