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 };

 

posted @ 2021-08-24 11:44  zhaohhhh  阅读(73)  评论(0)    收藏  举报