Leecode 78. 子集 DFS/位运算

news/2024/7/20 21:52:51 标签: 深度优先, leetcode, 算法, c++

原题链接:Leecode 78. 子集
在这里插入图片描述
DFS 1

class Solution {
public:
    vector<vector<int>> res;
    void dfs(vector<int>& nums,vector<int> v,int n)
    {
        res.push_back(v);
        for(int i=n;i<nums.size();i++)
        {
            v.push_back(nums[i]);
            dfs(nums,v,i+1);
            v.pop_back();
        }
    }
    vector<vector<int>> subsets(vector<int>& nums) {
        vector<int> v;
        dfs(nums,v,0);
        return res;
    }
};

DFS 2

class Solution {
public:
    vector<vector<int>> res;
    vector<int> v;
    void dfs(vector<int>& nums,int n)
    {
        if(n==nums.size())
        {
            res.push_back(v);
            return;
        }
        v.push_back(nums[n]);
        dfs(nums,n+1);
        v.pop_back();
        dfs(nums,n+1);
    }
    vector<vector<int>> subsets(vector<int>& nums) {
        dfs(nums,0);
        return res;
    }
};

位运算

class Solution {
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        vector<vector<int>> res;
        int n=nums.size();
        int len=1<<n;
        for(int i=0;i<len;i++)
        {
            vector<int> v;
            for(int j=0;j<n;j++)
            {
                if(((i>>j)&1)==1)
                {
                    v.push_back(nums[j]);
                }
            }
            res.push_back(v);
        }
        return res;
    }
};

http://www.niftyadmin.cn/n/1264807.html

相关文章

适合工业界的特征选择方法介绍

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/anshuai_aw1/article/details/88875757 一直想写一篇关于特征选择&#xff08;Feature Selection&a…

Hive 中数据仓库默认位置配置及库表关系

1、原始位置的默认配置 hive中的Default&#xff08;默认&#xff09;数据仓库的最原始位置是在hdfs上的 /user/hive/warehouse&#xff08;以下默认Hive的HDFS根目录为/user/hive&#xff09;路径下&#xff0c;这个原始位置是本地的/usr/local/hive/conf/hive-default.xml.t…

Leecode 90. 子集 II DFS/位运算

原题链接&#xff1a;Leecode 90. 子集 II DFS class Solution { public:vector<vector<int>> res;void dfs(vector<int>& nums,vector<int> v,int n){res.push_back(v);for(int in;i<nums.size();i){if(i>n && nums[i-1]nums[i]…

hive中的group by分组查询注意和其他其他传统关系数据库sql的区别

顾名思义就是按照指定的一个或者多个字段就行分组查询&#xff0c;返回每个组的相关值&#xff0c;group by时常与聚合函数结合使用&#xff0c; 这里需要注意的是&#xff0c; 1、在hive中&#xff0c; 一旦有group by子句&#xff0c;那么&#xff0c;在select子句中只能有…

hive查询语句中的常见错误

1、case when --else end 语句中忘记写end&#xff0c;或者忘记把整个字句用as起别名&#xff0c;因为一个字段如果用case when条件语句计算后就是已经生成新的字段了&#xff0c;不能再用以前的字段名称。例如&#xff1a; 原来的字段是age&#xff0c;他的值是连续的int&…

Leecode 剑指 Offer 38. 字符串的排列 DFS

原题链接&#xff1a;Leecode 剑指 Offer 38. 字符串的排列 DFS class Solution { public:vector<string> res;vector<bool> v;void dfs(const string& s,int n,int l,string& t){if(ln){res.push_back(t);return ;}for(int i0;i<n;i){if(v[i] || (i…

hiveq sql语句的三种执行方式

hive脚本的三种执行方式 1. hive控制台交互式执行&#xff1b;2. hive -e "SQL"执行&#xff1b;或者 hive -S -e " sql" ,加了-S表示静音模式&#xff0c;即不会显示mapreduce的操作过程。 这种方式直接在bash shell终端里边输入 hive -e "SQL&q…

Leecode 567. 字符串的排列

原题链接&#xff1a;Leecode 567. 字符串的排列 class Solution { public:bool checkInclusion(string s1, string s2) {int n1s1.size();int n2s2.size();if(n1>n2) return false;vector<int> v1(26);vector<int> v2(26);for(int i0;i<n1;i){v1[s1[i]-a]…