子集(力扣78)

ops/2025/2/10 23:43:06/

这道题与之前做过的回溯问题最大的区别就是,我们在每一层递归都可以得到一个结果,也就是题目中所说的子集,而之前的题是在终止条件才将结果存入二维数组。需要注意的是,每一层递归中将结果存入二维数组的代码段需要放在终止条件之前。否则最后的子集还没存入就退出递归了。其他的部分都是之前的模版,我就不解释了,大家可以结合我下面的代码及详细注释理解此题。

代码及详细注释如下:

class Solution {
public:vector<int> path;vector<vector<int>> result;void backtracking(vector<int>& nums,int start){//在每一层递归中都要收集子集result.push_back(path);//终止条件if(start >= nums.size()){return;}for(int i = start;i < nums.size();i++){path.push_back(nums[i]);backtracking(nums,i + 1);path.pop_back();}return;}vector<vector<int>> subsets(vector<int>& nums) {path.clear();result.clear();backtracking(nums,0);return result;}
};


http://www.ppmy.cn/ops/157388.html

相关文章

b s架构 网络安全 网络安全架构分析

目录 文章目录 目录网络安全逻辑架构 微分段&#xff08;Micro-segmentation&#xff09;防火墙即服务&#xff08;Firewall asa Service &#xff0c;FWaaS&#xff09;安全网络网关&#xff08;Secure web gateway&#xff09;净化域名系统&#xff08;Sanitized Domain Na…

pptx 提取 ppt 内容

pptx 提取 ppt 内容 安装依赖库 https://github.com/scanny/python-pptx pip install python-pptx 代码实现 from io import BytesIO from pptx import Presentationdef extract_shape(shape):if shape

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_ssl_version 函数

定义 event\ngx_event_openssl.h 中&#xff1a; #if (OPENSSL_VERSION_NUMBER > 0x10100001L)#define ngx_ssl_version() OpenSSL_version(OPENSSL_VERSION)#else#define ngx_ssl_version() SSLeay_version(SSLEAY_VERSION)#endif #if (OPENSSL_VERSION_NUMBER…

React 生命周期函数详解

React 组件在其生命周期中有多个阶段&#xff0c;每个阶段都有特定的生命周期函数&#xff08;Lifecycle Methods&#xff09;。这些函数允许你在组件的不同阶段执行特定的操作。以下是 React 组件生命周期的主要阶段及其对应的生命周期函数&#xff0c;并结合了 React 16.3 的…

【SQL】count(1)、count() 与 count(列名) 的区别

在 SQL 中&#xff0c;COUNT 函数用于计算查询结果集中的行数。COUNT(1)、COUNT(*) 和 COUNT(列名) 都可以用来统计行数&#xff0c;但它们在实现细节和使用场景上有一些区别。以下是详细的解释&#xff1a; 1. COUNT(1) 定义: COUNT(1) 计算查询结果集中的行数。 实现: 在执…

Spring Boot快速开发

主要特点 简化配置&#xff1a;通过自动配置和起步依赖简化项目配置过程 集成性强&#xff1a;提供大量特性和功能&#xff08;Servlet容器&#xff1a;Tomcat、Jetty、Undertow&#xff1b;健康检查&#xff1b;指标监控等&#xff09;、整合库和框架&#xff08;Spring Data…

SqlSugar简单使用之Nuget包封装-Easy.SqlSugar.Core

SqlSugar官方文档 Nuget包开源地址 Nuget包是为了简化SqlSugar的使用步骤,增加一些基础的使用封装 引入分为两个版本&#xff0c;一个Ioc模式&#xff0c;另一个是注入模式&#xff0c;如果不想影响原本的仓储代码推荐使用Ioc模式&#xff0c;两者区别不大&#xff0c;方法通…

C++开发(软件开发)常见面试题

目录 1、C里指针和数组的区别 2、C中空指针请使用nullptr不要使用NULL 3、http/https区别和头部结构&#xff1f; 4、有了mac地址为什么还要ip地址&#xff1f;ip地址的作用 5、有了路由器为什么还要交换机&#xff1f; 6、面向对象三大特性 7、友元函数 8、大端小端 …