zoukankan      html  css  js  c++  java
  • 求一个集合的全部子集 假设都是Int类型的元素

    vector<int> int2bin_vec(int n, UL bit_num){
        vector<int> res(bit_num, 0);
        auto it = res.begin() + res.size() - 1;
        while( n != 0){
            *it = (n % 2);
            it--;
            n /= 2;
        }
        return res;
    }
    
    vector<int> zero_one2subset(const vector<int>& zero_one, const vector<int>& nums){
        if(zero_one.empty() || nums.empty() || zero_one.size() != nums.size()) return {};
        vector<int> res;
        for(int i = 0; i < zero_one.size(); i++){
            if(zero_one[i] == 1){
                res.emplace_back(nums[i]);
            }
        }
        return res;
    }
    
    
    vector<vector<int>> cal_subset(const vector<int>& nums){
        int subset_size = (1 << nums.size());
        vector<vector<int>> res((UL)subset_size);
        for(int i = 0; i < subset_size; i++){
            vector<int> zero_one = int2bin_vec(i, nums.size());
            vector<int> subset = zero_one2subset(zero_one, nums);
            res[i] = subset;
        }
        sort(res.begin(), res.end());
        return res;
    }
    
  • 相关阅读:
    教你怎么叠T恤
    最动人的情歌《The Power of Love》by Celine.Dion
    使代码简洁的 5 条忠告
    Timeout MessageBox
    内联函数
    局部对象
    const用法(转)
    心情
    内联函数
    局部对象
  • 原文地址:https://www.cnblogs.com/theodoric008/p/9601114.html
Copyright © 2011-2022 走看看