17
93
131
46(全排列)
class Solution { public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>> res; permuteDFS(nums, 0, res); return res; } void permuteDFS(vector<int>& num, int start, vector<vector<int>>& res) { if (start >= num.size()) res.push_back(num); for (int i = start; i < num.size(); ++i) { swap(num[start], num[i]); permuteDFS(num, start + 1, res); swap(num[start], num[i]); } } };
47
77(组合,记得剪枝)
class Solution { public: vector<vector<int>> res; void gencombination(int n,int k,int start,vector<int> &c) { if(c.size()==k){ res.push_back(c); return; } for(int i=start;i<=n-(k-c.size())+1;i++){ c.push_back(i); gencombination(n,k,i+1,c); c.pop_back(); } return; } vector<vector<int>> combine(int n, int k) { res.clear(); if(n<=0||k<=0||k>n) return res; vector<int> c; gencombination(n,k,1,c); return res; } };
39
40
216
78
90
401