78.子集
class Solution {
public:vector<vector<int>>res;vector<int>cur;vector<int>v;void bt(int start){res.push_back(cur);
if(start>=v.size())return;for(int i=start;i<v.size();i++){
cur.push_back(v[i]);bt(i+1);cur.pop_back();
}
}
vector<vector<int>> subsets(vector<int>& nums) {
v=nums;bt(0);return res;
}
};
如果把 子集问题、组合问题、分割问题都抽象为一棵树的话,那么组合问题和分割问题都是收集树的叶子节点,而子集问题是找树的所有节点!