leetcode做题笔记78子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

思路一:回溯

void backtracking(int* nums, int numsSize, int** res, int* returnSize, int** returnColumnSizes, int* path, int pathSize, int startIndex) {res[*returnSize] = (int*)malloc(sizeof(int) * pathSize);memcpy(res[*returnSize], path, sizeof(int) * pathSize);(*returnColumnSizes)[*returnSize] = pathSize;(*returnSize)++;for (int i = startIndex; i < numsSize; i++) {path[pathSize] = nums[i];backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, pathSize + 1, i + 1);}
}int** subsets(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {*returnSize = 0;*returnColumnSizes = (int*)malloc(sizeof(int) * 10001);int** res = (int**)malloc(sizeof(int*) * 10001);int* path = (int*)malloc(sizeof(int) * numsSize);backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, 0, 0);return res;
}

分析:

本题与上一题相似,利用回溯算法将数组内子集全部列出即可,path[pathSize] = nums[i];

backtracking(nums, numsSize, res, returnSize, returnColumnSizes, path, pathSize + 1, i + 1);将子集全部列出,最后返回res

总结:

本题考察回溯的应用,将子集按顺序全部列出即可解决

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

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

相关文章

在 Linux 虚拟机上使用 Azure 自定义脚本扩展版本

参考 azure创建虚拟机,创建虚拟机注意入站端口规则开放80端口、 2.转到资源&#xff0c;点击扩展应用程序&#xff0c;创建存储账户&#xff0c;创建容器&#xff0c;上传文件&#xff0c;选择文件&#xff0c;会自动执行部署。 apt-get update -y && apt-get insta…

ROS订阅相机图像消息,并将图像保存为视频帧

需求 需要编写一个Python程序&#xff0c;订阅电脑外接的深度相机发出的视频消息&#xff0c;录制视频并逐帧保存为图片到本地&#xff0c;用于采集制作数据集的图片信息 运行环境 Ubuntu18.04 ROS Melodic Python2.7 Python程序 #!/usr/bin/env python # -*- coding: u…

Vue-day03 组件

1.组件机制 组件 (Component) 是 Vue.js 最强大的功能之一。组件可以扩展HTML元素&#xff0c;封装可重用的代码。在较高层面上&#xff0c;组件是自定义元素&#xff0c;Vue的编译器为它添加特殊功能。在有些情况下&#xff0c;组件也可以表现为用is特性进行了扩展的原生 HTML…

chatgpt和xmind结合起来帮你制作精美的思维导图

介绍 chatgpt和xmind结合起来帮你制作精美的思维导图。 1.输出Markdown格式 2.xmind导入.md文件

web集群学习:nginx+keepalived实现负载均衡高可用性

目录 项目架构 一&#xff0c;环境介绍 二&#xff0c;项目部署 在Web服务器上配置Web测试页面 nginx负载均衡配置 配置Nginx_Master 通过vrrp_script实现对集群资源的监控&#xff08;1>通过killall命令探测服务运行状态&#xff09; 通过vrrp_script实现对集群资源…

div输入框的文字超过指定行数用省略号表示css

实现效果&#xff1a;超过四行用省略号表示 实现方法&#xff1a; .text{overflow: hidden;text-overflow: ellipsis;display: -webkit-box;-webkit-line-clamp: 4; // 自定义行数-webkit-box-orient: vertical; }

Go和Java实现外观模式

Go和Java实现外观模式 下面我们通过一个构造各种形状的案例来说明外观模式的使用。 1、外观模式 外观模式隐藏系统的复杂性&#xff0c;并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型 模式&#xff0c;它向现有的系统添加一个接口&#xff…

【设计模式】代理模式

在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。 介绍 意图&#xff1a;为其他对象提供一种代理以…

【面试问题】事务中执行了异步任务分发数据,由于事务未提交,导致异步任务无法执行

文章目录 问题描述&#xff1a;解决办法&#xff1a; 问题描述&#xff1a; OverrideTransactional(rollbackFor Exception.class)public ServiceResponse ctsqCallbackProcess(OaFlowRecord params) {// 查询任务单数据// 更新任务单信息// 异步分发数据到CRMS系统}客户数据分…

TX Text Control .NET Server for ASP.NET Crack

TX Text Control .NET Server for ASP.NET Crack TX Text Control.NET Server for ASP.NET是用于Web应用程序或服务的服务器端组件。它是一个完全可编程的ASP.NET文字处理引擎&#xff0c;提供了广泛的文字处理功能。使用TX Text Control.NET Server&#xff0c;程序员可以开发…

react组件化开发详解

React是一个流行的JavaScript库&#xff0c;用于构建用户界面&#xff0c;并且以组件化的方式进行开发。下面将详解React组件化开发的概念和步骤&#xff1a; 组件化思维&#xff1a; 组件化开发是将复杂的用户界面划分为独立、可重用的小部件&#xff08;组件&#xff09;。…

【833. 字符串中的查找与替换】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 你会得到一个字符串 s (索引从 0 开始)&#xff0c;你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出&#xff1a;indices, sources, targets。 要完成第 i 个替换操作: 检查…

Spring事务传播机制

hi ,大家好,继续为大家带来Spring事务传播机制的相关知识 文章目录 &#x1f917;1.事务传播机制是什么&#x1f917;2.事务传播机制作用&#x1f917;3.事务传播机制 &#x1f917;1.事务传播机制是什么 定义了多个包含了事务的⽅法&#xff0c;相互调⽤时&#xff0c;事务是…

C++教程 - How to C++系列专栏第3篇

关于专栏 这个专栏是优质的C教程专栏&#xff0c;如果你还没看过第0篇&#xff0c;点击C教程 - How to C系列专栏第0篇去第0篇 本专栏一致使用操作系统&#xff1a;macOS Ventura&#xff0c;代码编辑器&#xff1a;CLion&#xff0c;C编译器&#xff1a;Clang 感谢一路相伴…

[C++ 网络协议编程] UDP协议

目录 1. UDP和TCP的区别 2. UDP的工作原理 3. UDP存在数据边界 4. UDP的I/O函数 4.1 sendto函数 4.2 recvfrom函数 4. 已连接(connected)UDP套接字和未连接(unconnected)UDP套接字 5. UDP的通信流程 5.1 服务器端通信流程 5.2 客户端通信流程 1. UDP和TCP的区别 主要…

从安全角度分析Angular本地存储

随着Web应用程序的不断增长&#xff0c;前端开发人员慢慢意识到使用浏览器提供的本地存储技术可以在不使用外部数据库的情况下方便地保存应用程序的数据。Angular作为目前最流行的前端框架之一&#xff0c;也在其API中提供了许多本地存储技术的支持。但是&#xff0c;在使用本地…

Electron教程_编程入门自学教程_菜鸟教程-免费教程分享

教程简介 Electron是一个是使用JavaScript&#xff0c;HTML和CSS构建跨平台的桌面应用程序框架。 Electron 通过将 Chromium 和 Node.js 合并到同一个运行时环境中&#xff0c;并将其打包为 Mac&#xff0c;Windows 和 Linux 系统下的应用来实现这一目的。 Electron入门教程 …

【深度学习】日常笔记16

可以将pd.DataFrame数据结构理解为类似于Excel中的表格。pd.DataFrame是pandas库提供的一个二维数据结构&#xff0c;用于存储和操作具有行和列的数据。它类似于Excel中的工作表&#xff0c;其中每一列可以是不同的数据类型&#xff08;例如整数、浮点数、字符串等&#xff09;…

关于安卓打包生成aar,jar实现(一)

关于安卓打包生成aar&#xff0c;jar方式 背景 在开发的过程中&#xff0c;主项目引入三方功能的方式有很多&#xff0c;主要是以下几个方面&#xff1a; &#xff08;1&#xff09;直接引入源代码module&#xff08;优点&#xff1a;方便修改源码&#xff0c;易于维护&#…

Spring_AOP

一、AOP简介 AOP&#xff0c;Aspect Oriented Programming,面向切面编程,是对面向对象编程0OP的升华。OOP是纵向对一个事物的抽象&#xff0c;一个对象包括静态的属性信息&#xff0c;包括动态的方法信息等。而AOP是横向的对不同事物的抽象,属性与属性、方法与方法、对象与对象…