leetcode-Subsets-78

Posted 0_summer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-Subsets-78相关的知识,希望对你有一定的参考价值。

输入一个数组,求所有子集

也是选择问题,在上一题的基础上枚举子集长度,然后dfs+回溯选择。同样注意去重

 1 class Solution {
 2 public:
 3     void dfs(vector<int> a,int i,vector<vector<int> > &v,vector<int> vv,int k){
 4         if(vv.size()==k){
 5             v.push_back(vv);
 6             return;
 7         }
 8         for(int j=i+1;j<a.size();j++){
 9             if(j!=i+1&&a[j]==a[j-1]) continue;
10             vv.push_back(a[j]);
11             dfs(a,j,v,vv,k);
12             vv.pop_back();
13         }
14     }
15     vector<vector<int> > subsets(vector<int>& nums) {
16         int len=nums.size();
17         vector<vector<int> > v;
18         if(len==0) return v;
19         vector<int> vv;
20         v.push_back(vv);
21         sort(nums.begin(),nums.end());
22         for(int k=1;k<=len;k++){
23             for(int i=0;i<len;i++){
24                 vv.push_back(nums[i]);
25                 dfs(nums,i,v,vv,k);
26                 vv.pop_back();
27             }
28         }
29         return v;
30     }
31 };

 

以上是关于leetcode-Subsets-78的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数