zoukankan      html  css  js  c++  java
  • leetcode 90. subsets

    解题思路:

    要生成子集,对于vector 中的每个数,对于每个子集有两种情况,加入或不加入。

    因此代码:

    class Solution {
    public:
        void subsetG(vector<int> nums, vector<vector<int>>& result, vector<int> temp, int c)
        {
            if(c>=nums.size())
            {
               result.push_back(temp); 
                return ;
            }
            int i=c;
                subsetG(nums,result, temp,i+1);        
                temp.push_back(nums[i]);
                subsetG(nums,result, temp,i+1);
    
    
        }
            
        vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        
            vector<vector<int>> result;
            vector<int> temp;
           subsetG(nums,  result,temp,0);
       
            return result;
    
        }
    };
    

     

     但是这样会造成许多重复的子集,因为重复的情况我们只需要考虑一次.可以分为拿和不拿. 如果拿的话就按照正常往下一层搜索, 如果不拿当前值的话, 那么也要跳过接下来和当前值相等的元素.

    class Solution {
    public:
        void subsetG(vector<int> nums, vector<vector<int>>& result, vector<int> temp, int c)
        {
            if(c>=nums.size())
            {
               result.push_back(temp); 
                return ;
            }
            int i=c;
               while(c+1<nums.size()&&nums[i]==nums[c+1])
               {
                   c++;
               }
                subsetG(nums,result, temp,c+1);
                
                temp.push_back(nums[i]);
       
                subsetG(nums,result, temp,i+1);
      
        }
            
        vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        
    
            vector<vector<int>> result;
            vector<int> temp;
           subsetG(nums,  result,temp,0);
            
            
            return result;
            
            
            
        }
    };
    

      

  • 相关阅读:
    Web API DataContract DataMember Serializable简单解释
    v-bind和v-on
    CSS大写转换
    Web API 实体显示注释
    Web API性能优化(一)压缩
    时间序列化问题
    border 0px和border none的区别
    CSS实现单行、多行文本溢出显示省略号
    MySQL防止重复插入记录SQL
    mvc和webapi同一解决方案调试办法
  • 原文地址:https://www.cnblogs.com/fanhaha/p/7376532.html
Copyright © 2011-2022 走看看