【每日刷题】Day124

news/2024/9/18 21:03:29 标签: 哈希算法, leetcode, 算法, c++, 动态规划, 数据结构

【每日刷题】Day124

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. LCR 079. 子集 - 力扣(LeetCode)

2. 1863. 找出所有子集的异或总和再求和 - 力扣(LeetCode)

3. LCR 084. 全排列 II - 力扣(LeetCode)

1. LCR 079. 子集 - 力扣(LeetCode)

//思路:深搜+回溯。

//解决这类问题我们首先要画出决策树

//这里代码供参考,最好还是自己思考如何将决策树转换为代码。

class Solution {

public:

    vector<vector<int>> ans;

    vector<int> tmp;

    bool hash[11];

    void _subsets(vector<int>& nums,int i)

    {

        if(i==nums.size())

        {

            ans.push_back(tmp);

            return;

        }

        _subsets(nums,i+1);

        tmp.push_back(nums[i]);

        _subsets(nums,i+1);

        tmp.pop_back();;

    }

    vector<vector<int>> subsets(vector<int>& nums)

    {

        _subsets(nums,0);

        return ans;

    }

};

2. 1863. 找出所有子集的异或总和再求和 - 力扣(LeetCode)

//思路:深搜+回溯。

//本题思路与上题 "子集" 完全一样。找完所有子集后我们对这些子集进行遍历,算出所有子集的异或和再求和。

class Solution {

public:

    vector<vector<int>> ans;

    vector<int> tmp;

    void _subsetXORSum(vector<int> nums,int i)

    {

        if(i==nums.size())

        {

            ans.push_back(tmp);

            return;

        }

        _subsetXORSum(nums,i+1);

        tmp.push_back(nums[i]);

        _subsetXORSum(nums,i+1);

        tmp.pop_back();

    }

    int subsetXORSum(vector<int>& nums)

    {

        int ret = 0;

        _subsetXORSum(nums,0);

        for(int i = 0;i<ans.size();i++)

        {

            int tmp = 0;

            for(int j = 0;j<ans[i].size();j++) tmp^=ans[i][j];

            ret+=tmp;

        }

        return ret;

    }

};

3. LCR 084. 全排列 II - 力扣(LeetCode)

//思路:深搜+回溯。

//本题大体思路与 Day123 中的 "全排列" 完全相同,区别在于需要额外处理特殊的剪枝操作

class Solution {

public:

    vector<vector<int>> ans;

    vector<int> tmp;

    bool hash[9];

    void _permuteUnique(vector<int>& nums)

    {

        if(tmp.size()==nums.size())

        {

            ans.push_back(tmp);

            return;

        }

        for(int i = 0;i<nums.size();i++)

        {

            if(hash[i]||(i>0&&hash[i-1]&&nums[i]==nums[i-1])) continue;//跳过重复数字

            tmp.push_back(nums[i]);//后续与 "全排列" 完全一样

            hash[i] = true;

            _permuteUnique(nums);

            tmp.pop_back();

            hash[i] = false;

        }

    }

    vector<vector<int>> permuteUnique(vector<int>& nums)

    {

        sort(nums.begin(),nums.end());//这里需要对数组排序一下,这样重复的数字就一定是挨在一起的

        _permuteUnique(nums);

        return ans;

    }

};


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

相关文章

笔试强训day15

平方数 牛妹是一个喜欢完全平方数的女孩子。 牛妹每次看到一个数 x&#xff0c;都想求出离 x 最近的完全平方数 y。 每次手算太麻烦&#xff0c;所以牛妹希望你能写个程序帮她解决这个问题。 形式化地讲&#xff0c;你需要求出一个正整数 y&#xff0c;满足 y 可以表示成 a2a^…

Linux定时启动jar应用shell脚本分享

1、如何精确找到jar应用进程 # 以 dist-app-manage.jar 为例 [rootlocalhost dist-app-manage-8083]# ps -ef|grep dist-app-manage.jar root 5134 5033 0 21:24 pts/0 00:00:00 grep --colorauto dist-app-manage.jar root 21766 1 1 Sep02 ? …

window下idea中scala的配置

目录 Scala安装步骤&#xff1a; 1.下载scala安装包 2.配置环境变量&#xff1a; 3.检查scala是否安装成功&#xff1a; 4.idea安装scala插件 5.导入scala-sdk 6.新建scala文件 Scala安装步骤&#xff1a; 1.下载scala安装包 访问Scala官网&#xff1a;https://www.sca…

自然语言处理实战项目

自然语言处理&#xff08;NLP&#xff09;实战项目是一个结合了理论学习和实践操作的综合性任务&#xff0c;旨在通过具体项目来加深学习者对NLP技术的理解和应用能力。以下是一些常见的NLP实战项目及其描述&#xff1a; 1. 文本分类 项目描述&#xff1a; 文本分类是NLP中的…

原生 input 中的 “type=file“ 上传文件

目标&#xff1a;实现文件上传功能 原型图&#xff1a; HTML部分&#xff1a; <div class"invoice-item"><div class"invoice-title">增值税专用发票</div><div class"invoice-box"><el-form-item label"标准…

《MmAP : Multi-Modal Alignment Prompt for Cross-Domain Multi-Task Learning》中文校对版

系列论文研读目录 文章目录 系列论文研读目录摘要1 引言2 相关工作3 方法3.1对比图像预训练3.2 多模式对齐提示3.3 多任务提示学习框架 4 实验4.1基准设置4.2实验结果4.3消融研究 5、结论 摘要 多任务学习&#xff08;Multi-Task Learning&#xff0c;MTL&#xff09;是为了同…

如何打造出强悍的谷歌搜索关键词优化方案揭密

搭建一个成功的关键词优化规划是促进网站在谷歌搜索引擎中取得更强曝光和流量重要。本文将为你揭露七个秘笈&#xff0c;帮助自己打造出强悍的谷歌搜索关键词优化方案。1.目标制定在进行优化关键词以前&#xff0c;必须明确自己的目标。你希望用谷歌搜索引擎获得更多浏览量和访…

【计算机网络】第一章

目录 一、计算机网络的各种定义 二、计算机网络的发展 三、计算机网络的功能 四、计算机网络的分类 五、Internet的组成 六、交换 一、计算机网络的各种定义 Internet&#xff1a;因特网&#xff08;外国资源&#xff09; internet&#xff1a;互联网络&#xff08;两个或…