力扣 78. 子集

news2024/10/7 16:16:45

题目来源:https://leetcode.cn/problems/subsets/description/

 C++题解1:递归回溯法。由于是求子集,所以根据nums.size()遍历每个子集的长度,并进行回溯。

class Solution {
public:
    vector<vector<int>> res;
    vector<int> sub;
    void backtracking(vector<int> nums, int ind, int num) {
        if(sub.size() == num) {
            res.push_back(sub);
            return;
        }
        for(int i = ind; i < nums.size(); i++) {
            sub.push_back(nums[i]);
            backtracking(nums, i + 1, num);
            sub.pop_back();
        }
    }
    vector<vector<int>> subsets(vector<int>& nums) {
        int len = nums.size();
        for(int j = 0; j <= len; j++) {backtracking(nums, 0, j);}
        return res;
    }
};

C++题解2(来源代码随想录):不断地从自身开始收集子集,直到末尾。所以不用更新目标子集的长度。

class Solution {
private:
    vector<vector<int>> result;
    vector<int> path;
    void backtracking(vector<int>& nums, int startIndex) {
        result.push_back(path); // 收集子集,要放在终止添加的上面,否则会漏掉自己
        if (startIndex >= nums.size()) { // 终止条件可以不加
            return;
        }
        for (int i = startIndex; i < nums.size(); i++) {
            path.push_back(nums[i]);
            backtracking(nums, i + 1);
            path.pop_back();
        }
    }
public:
    vector<vector<int>> subsets(vector<int>& nums) {
        result.clear();
        path.clear();
        backtracking(nums, 0);
        return result;
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/720364.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Blazor前后端框架Known-V1.2.2

V1.2.2 Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 概述 基于C#和Blazor实现的快速开发框架&#xff0c;前后端分离&#xff0c;开箱即用。跨平台&#xff0c;单页应用&#xff…

scratch 篮球反弹

scratch 篮球反弹 本程序的功能是一个角色水平移动、碰到边缘反弹&#xff0c;“篮球”初始位置和方向随机&#xff0c;接触到其它角色或边缘时反弹。 具体内容如下 “篮球”角色 男孩角色

集成运放电路计算(全)

自记&#xff1a; 常用运放电路计算与分析 1、运放的符号表示 2、集成运算放大器的技术指标 (1) 开环差模电压放大倍数(开环增益)大 Ao(Ad)Vo/(V-V-)107-1012倍; (2) 共模抑制比高 KCMRR100db以上; (3) 输入电阻大 ri>1MW, 有的可达100MW以上; (4) 输出电阻小 ro 几W-几十…

如何将语音转换成文字?分享好用的3个方法!

为了方便制作会议记录&#xff0c;通常我们会录制会议内容&#xff0c;并在后期根据录音进行整理。然而&#xff0c;许多人在整理过程中感到痛苦&#xff0c;因为需要反复听取音频才能完成整理工作。其实&#xff0c;我们可以借助记灵在线工具将语音转换为文字&#xff0c;从而…

Rust 第一天---Rust环境配置

学习一门新的语言总是令人兴奋的,新的语法特性,设计理念…当然任何新的事物总是会留有旧事物的影子,这也能帮助我们更快地学习理解.作为2015年才正式发布的“年轻”语言,安全是它最大特性也是受欢迎原因之一.通过所有权系统进行内存管理,避免了其他高级语言因垃圾回收带来的消耗…

一百二十六、DBeaver——导入CSV文件(文件中无表字段)到ClickHouse

一、目标&#xff1a;将CSV文件的数据导入到ClickHouse中 备注&#xff1a;CSV文件没有表字段&#xff0c;只有纯粹的数据 二、实施步骤 第一步&#xff0c;右击表名&#xff0c;选择导入数据 第二步&#xff0c;在源类型和格式&#xff0c;选择从CSV文件导入&#xff0c;然…

企业如何建设积分商城?

企业建设一个成功的积分商城系统并不是一件简单的事情&#xff0c;需要注意诸多细节。我们该如何建设积分商城呢&#xff1f;作为一位电商行业十多年的从业者&#xff0c;这里分享一些经验。 一、明确商城建设目标 在建设积分商城之前&#xff0c;我们需要明确建设商城的目标&…

Flutter基础控件

Text:文字 Text("Flutter") Text是最常用也是最基础的&#xff0c;目前学习阶段只用来加载文字数据&#xff0c;更多属性和样式设置请查看源码自己探索。 Button:按钮 ElevatedButton:普通按钮 ElevatedButton(onPressed: () {if (kDebugMode) {print("Elevat…

【Python爬虫与数据分析】进程、线程、协程

目录 一、概述 二、进程的创建 三、线程的创建 四、协程的创建 五、全局变量的共享问题 六、消息队列与互斥锁 七、池化技术 一、概述 进程是系统分配资源的基本单位&#xff0c;线程是CPU调度的基本单位。 一个进程可包含多个线程&#xff0c;一个线程可包含多个协程&…

【C++11】可变参数的函数模板 的 定义 和 应用练习

文章目录 定义常见应用模板参数包展开可变参数模板类可变参数模板函数重载 练习打印任意数量的参数将任意数量的参数合并为一个字符串解包元组&#xff08;Tuple Unpacking&#xff09; emplace_back和 push_back 的比较实例 定义 可变参数模板&#xff08;Variable-length ar…

IT技术相关网站

OSCHINA - 中文开源技术交流社区https://www.oschina.net CSDN - 专业开发者社区https://www.csdn.netSegmentFault 思否 - 中国领先的开发者技术社区https://segmentfault.com 有穹_一个开发者的作品发布平台https://www.youqiong.net牛客网 - 找工作神器|笔试题库|面试经验|实…

完美适配小爱课程表(河南科技学院)

1.前言&#xff1a; 前文请参照我的以前的博客&#xff1a; 青果教务系统适配小爱课程表 本文代码现已开源&#xff1a; 小爱课程表适配gitee小爱课程表适配github 去年的时候试着适配了我们学校的小爱课程表&#xff0c;但是由于水平不够&#xff0c;直接把接口以及参数照搬&a…

redhawk: ir drop如何计算?effective instance resistance和min res path有什么区别?

往期文章链接: redhawk: static analysis redhawk: dynamic analysis redhawk: 什么timing window?

网络安全(黑客)自学!走进黑客的世界

谈起黑客&#xff0c;可能各位都会想到&#xff1a;盗号&#xff0c;其实不尽然&#xff1b;黑客是一群喜爱研究技术的群体&#xff0c;在黑客圈中&#xff0c;一般分为三大圈&#xff1a;娱乐圈 技术圈 职业圈。 娱乐圈&#xff1a;主要是初中生和高中生较多&#xff0c;玩网恋…

但愿世间不纷争,何惜法典卷生尘——北大团队开源法律大模型chatLaw助力法律垂直领域研究发展

今天看到一个比较热门的项目就是来自于北大研究团队刚刚开源的chatLaw法律领域数据开发构建的大模型&#xff0c;官方项目地址在这里&#xff0c;如下所示&#xff1a; 目前已经收货2.1k的star量还是很不错的了。 官方提供的学术报告文章地址在这里&#xff0c;如下所示&#…

API接口设计不合理?个人和公司都有问题

前言 在软件产品或项目开发过程中&#xff0c;往往涉及到大量API接口的开发任务。而一个接口的诞生如果是令人费解的、痛苦折磨的以及有严重后遗症的&#xff0c;究其根本原因还在于设计API接口的时候不够清晰、合理以及缺乏长远考虑。我依据多位同事的问答、实际工作的经验和…

【rsync】远程同步,快速增量备份

rsync远程同步 1.rsync远程同步1.1 rsync概述1.2 下行同步1.3 远程文件同步总结 2. 搭建rsync远程文件同步2.1 搭建rsync远程下行同步2.1.1 配置rsync服务器端&#xff08;同步源&#xff09;2.1.2 配置rsync客户机&#xff08;发起端&#xff09; 2.2 免交互配置2.3 rysnc认证…

水电站运行数据3D可视化展示方便管理运维

水电站是现代能源体系中的重要组成部分&#xff0c;对于保障国家能源安全和经济发展具有重要的意义。然而&#xff0c;由于水电站的建设和管理涉及到大量的技术和专业知识&#xff0c;许多人对水电站的运行和维护存在许多疑惑和困惑。为了解决这些问题&#xff0c;我们引入了全…

OpenShift 4 - 可观测性之 OpenShift Logging - Loki(附视频)

《OpenShift / RHEL / DevSecOps 汇总目录》 说明&#xff1a;本文已经在支持 OpenShift 4.12 OpenShift Logging Operator 5.7.2 Loki Operator 5.7.2 的环境中验证 文章目录 OpenShift 基于 Loki 的日志架构安装配置基于 Loki 的日志环境安装 OpenShift Logging Operator 和…

工地能耗监测系统

随着全球气候变化的影响日益严重&#xff0c;环保意识逐渐深入人心&#xff0c;绿色建筑和节能减排成为了建筑行业的热门话题。而在建筑工地中&#xff0c;能耗监测成为了一项不可或缺的任务。为了更好地实现能耗监测&#xff0c;工地能耗监测系统应运而生。本文将从以下几个方…