leetcode78 子集
有了昨天那个的经验,写起这个来很快,还是经典generate,贴代码
1 class Solution { 2 public: 3 vector<vector<int>> res; 4 vector<vector<int>> subsets(vector<int>& nums) 5 { 6 for(int sub_size = 0 ; sub_size <= nums.size() ; sub_size++) 7 { 8 vector<int> res_temp_in; 9 generate(sub_size,nums,res_temp_in); 10 } 11 return res; 12 } 13 void generate(int sub_size,vector<int> nums_in,vector<int> res_temp_in) 14 { 15 if(!sub_size) 16 { 17 res.push_back(res_temp_in); 18 } 19 else 20 { 21 for(int i = 0 ; i <= nums_in.size()-sub_size ; i++) 22 { 23 vector<int> res_temp = res_temp_in; 24 res_temp.push_back(nums_in[i]); 25 if(sub_size == 1) 26 res.push_back(res_temp); 27 else 28 { 29 int t = nums_in.size()-1-i; 30 vector<int> temp(nums_in.end()-t,nums_in.end()); 31 generate(sub_size-1,temp,res_temp); 32 } 33 } 34 } 35 36 } 37 };

浙公网安备 33010602011771号