zoukankan      html  css  js  c++  java
  • 78. 子集(c++)

    难度中等515给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
    说明:解集不能包含重复的子集。示例:    输入: nums = [1,2,3]
    输出:
    [
      [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]
     
        vector<vector<int>> subsets(vector<int>& nums) {
            vector<vector<int>> ret;
            ret.push_back({});
            int size = nums.size();
            int subsize = pow(2,size);
            int hash = 1;
            while(hash <subsize){
                vector<int> temp;
                for(int k=0;k<size;k++){
                    int a = 1<<k;
                    if(a&hash){
                        temp.push_back(nums[k]);
                    }
                }
                ret.push_back(temp);
                hash++;
            }
            return ret;
            
        }
     
     
  • 相关阅读:
    P1071 潜伏者
    P2199 最后的迷宫
    推荐
    T150191 求和
    T150189 养猪
    P1106 删数问题
    NOIP 2018 提高组初赛试题胡谈
    结题报告
    博客迁移公告
    简单实用算法——用队列实现栈
  • 原文地址:https://www.cnblogs.com/one-think/p/12626670.html
Copyright © 2011-2022 走看看