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

    https://leetcode-cn.com/problems/subsets/submissions/

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

    说明:解集不能包含重复的子集。

    示例:

    输入: nums = [1,2,3]
    输出:
    [
    [3],
      [1],
      [2],
      [1,2,3],
      [1,3],
      [2,3],
      [1,2],
      []
    ]

    class Solution {
    public:
        void generate(int i,vector<int>& nums,vector<int>& item,vector<vector<int>>& res){
            if(i >= nums.size())
                return;
            //选择放入i个元素
            item.push_back(nums[i]);
            res.push_back(item);
            generate(i+1,nums,item,res);
            //不放入nums[i]
            item.pop_back();
            generate(i+1,nums,item,res);
        }
        //可以利用循环,也可以利用dfs+回溯
        vector<vector<int>> subsets(vector<int>& nums) {
            vector<int> item;
            vector<vector<int>> res;
            res.push_back(item);
            generate(0,nums,item,res);
            return res;
        }
    };
    

      位运算法

    class Solution {
    public:
        //法二  位运算法
        vector<vector<int>> subsets(vector<int>& nums) {
            vector<vector<int>> res;
            int all_set = pow(2,nums.size());
            for(int i=0;i<all_set;i++){
                vector<int> item;
                for(int j=0;j<nums.size();j++){
                    int set = 1;
                    set = set << (nums.size()-j-1);
                    if(set & i){
                        item.push_back(nums[j]);
                    }
                }
                res.push_back(item);
            }
            return res;
        }
    };
    

      

  • 相关阅读:
    CF 336494 C. Meme Problem
    MySql备份
    MySQL索引背后的数据结构及算法原理
    show profile 开启权限
    示例数据库
    索引使用策略及优化
    shiro权限登录案例
    Swagger技术
    Shiro框架
    shiro授权管理
  • 原文地址:https://www.cnblogs.com/wsw-seu/p/13201954.html
Copyright © 2011-2022 走看看