leetcode代码记录(子集

news2024/11/19 12:33:39

目录

  • 1. 题目:
  • 2. 我的代码:
  • 小结:

1. 题目:

在这里插入图片描述

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

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

示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

输入:nums = [0]
输出:[[],[0]]

2. 我的代码:

class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        # 结果
        result = []
        # 全局路径
        path = []
        
        # 递归 + 回溯
        def backtracking(start_index):
            result.append(path[:])
            
            # for
            for i in range(start_index, len(nums)):
                path.append(nums[i])
                backtracking(i + 1)
                path.pop()
                
            return
            
        backtracking(0)
        return result

仍然是回溯算法,不过不需要有终止条件,因为for循环完了即是循环结束可以作为终止条件(不像组合一样要求组合的长度为k)
每一次进入回溯里的递归都是一个子集,这是特殊的地方。类比于 组合问题 的结果在树的叶子节点一样,子集问题 的结果在树的每个节点。因此,需要对每次进入回溯的路径做个记录,收集得到的就是子集结果。

小结:

关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
添加我的公众号即可:

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

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

相关文章

MySQL MHA故障切换

目录 一、案例分析 1.1、案例概述 1.2、案例前置知识点 1)什么是 MHA 2)MHA 的组成 3)MHA 的优势 4)MHA 现状 1.3、案例环境 1)本案例环境 ​编辑 2)案例需求 3)案例实现思路…

解读如何打造超高商楼宇智慧公厕

智慧楼宇大厦智慧公厕是近年来兴起的一个创新方案,旨在为现代城市的楼宇建筑提供一种全新的管理与服务模式。这种智慧公厕的最大特点就是将智能化技术与传统楼宇公厕结合,通过各种高科技设备与系统,实现对公厕的全新管理与监控,为…

java serlvet 高校学生画像平台系统Myeclipse开发mysql数据库web结构java编程计算机网页项目echarts图形展现

一、源码特点 java serlvet 高校学生画像平台系统是一套完善的java web信息管理系统 系统采用serlvetdaobean 模式开发本系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCA…

Jmeter+Ant 接口自动化环境配置指南

一 、Jmeter安装与配置 https://blog.csdn.net/tester_sc/article/details/80746405 注:Jmeter5.0的环境变量配置与4.0或历往老版本有部分小差异,笔者用的Jmeter 5.0 二 、Ant的安装与配置 # Ant下载地址(下载到指定目录后,进行解压到当前…

Spark-Transformation以及Action开发实战

文章目录 创建RDDTransformation以及ActionTransformation开发Action开发RDD持久化共享变量创建RDD RDD是Spark的编程核心,在进行Spark编程是,首要任务就是创建一个初始的RDDSpark提供三种创建RDD方式:集合、本地文件、HDFS文件 集合:主要用于本地测试,在实际部署到集群运…

电路方案分析(十八)四开关buck-boost双向同步DC/DC变换器方案

tip是:资料来自网络,仅供学习交流使用! 1.概述 4开关降压升压双向DC-DC电源转换器在很多应用中都有使用。作为一个同步降压或同步升压转换器,其中只有两个开关切换,开关损耗减少到一半。只有当直流母线和电池电压彼此…

【MMDetection3D实战5】Dataset 和 model配置文件解析

文章目录 1. Dataset 配置文件解析1. 1 定义全局变量1. 1 数据处理pipeline(1) train_pipeline(2) test_pipeline(3) eval_pipeline1. 2 data 字典的定义2. model 配置文件解析2. 1 体素化voxel_layer2. 2 voxel_encoder2. 3 middle_encoder2. 4 2D 检测网络(backbone + neck …

C++实验 面向对象编程

一、实验目的: 掌握类中静态成员的定义方法,初始化方法,使用方法; 掌握类的友元说明方法,理解友元的使用特点 二、实验内容: 1、编写程序,统计某旅馆住宿客人的总数,要求输入客人…

hot100 -- 矩阵

👂 Peter Pan - kidult. - 单曲 - 网易云音乐 👂 Bibliothque(图书馆) - Jasing Rye - 单曲 - 网易云音乐 目录 🌼前言 🌼二分模板 🎂矩阵置零 AC 标记数组 AC 标记变量 🚩…

AI成就画质冠军!海信电视U8N Pro的“硬参数”和“软实力”

不得不说,这几年AI落地大有摧枯拉朽之势,也离普通人的生活越来越近了。 如果说,曾经1997年“深蓝”计算机赢下国际象棋世界冠军,还没那么让人印象深刻,2016年Alpha Go战胜围棋世界冠军,即使广泛关注&#…

replace和replaceAll的区别

replace和replaceAll的区别 replaceAll有些浏览器不兼容,如下图所示 replace的使用1>若只替换一个字符串abc.replace(b,1)//a1cabcaaa.replace(a,1)//1bcaaa2>若替换所有字符串abcaaa.replace(/\a/g,1)//1bc111replaceAll的使用1>若只替换一个字符串abc.replace(b,…

AI智慧校园电子班牌云平台源码

目录 家长端 学校端 电子围栏 亲情通话 课堂答题 移动化管理模式 统一资源管理平台 模板内容智能更换 家校互联 家长端 多场景通话:上学放学联系、紧急遇险求助联系、日常亲情通话关注孩子人身安全:到校离校情况、进入危险区域预警等。 学校端 课堂秩序管理:提高教…

服务器数据恢复—服务器硬盘灯显示红色的数据恢复案例

服务器数据恢复环境&故障: 一台服务器中有一组由多块硬盘组建的raid阵列,在运行过程中服务器突然崩溃,管理员检查服务器发现该服务器raid阵列中有两块硬盘的指示灯显示红色。于是,管理员重启服务器,服务器重启后&a…

基于Python django的人脸识别门禁系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、Python技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅&…

mac redis启动,redis哨兵模式,redis集群的相关命令

Homebrew安装的软件会默认在/usr/local/Cellar/路径下 redis的配置文件redis.conf存放在/usr/local/etc路径下 cd /usr/local/Cellar/redis/7.0.10. 存在 cd /usr/local/opt/redis/bin/redis-server. 目录存在 cd /usr/local/etc/redis.conf 存在。配置文件 复制文件 cp …

可视化展示与交互编辑:探索3D Web轻量化平台HOOPS WEB Platform在BIM中的新可能性

随着数字技术的飞速发展,建筑行业也在不断迈向数字化转型的道路。在这个过程中,BIM(Building Information Modeling,建筑信息模型)技术已经成为建筑设计、施工和管理领域中的一项重要工具。 而在BIM的应用中&#xff…

MATLAB中visdiff函数用法

目录 语法 说明 示例 比较两个文件 比较两个文件并指定类型 发布比较报告 visdiff函数的功能是比较两个文件或文件夹。 语法 visdiff(filename1,filename2) visdiff(filename1,filename2,type) comparison visdiff(___) 说明 visdiff(filename1,filename2) 打开比较工…

JVM理解学习

参考视频 运行时数据区 JVM架构总览图 绿色的:方法区,堆,是所有线程共享的 黄色的: 虚拟机栈,本地方法栈,程序计数器,是线程私有的 程序计数器 程序计数器是一块较小的内存空间,物…

蓝桥杯单片机快速开发笔记——矩阵键盘

一、原理分析 二、示例框架 定义了四个位控制变量,用于控制键盘扫描时的行列信号。 在Scan_Keys()函数中,首先设置行列信号,将其中一个行信号置为0,另一个行信号置为1,同时将列信号置为1,用于扫描键盘按键…

力扣映射题:机器人能否返回原点

超时太多了&#xff0c;笔者也开始放弃遍历了 bool judgeCircle(char* moves) {int arr[4]{0};for(int x0;x<strlen(moves);x) {if(moves[x]R){arr[0]arr[0]1;}if(moves[x]L){arr[1]arr[1]1;}if(moves[x]U){arr[2]arr[2]1;}if(moves[x]D){arr[3]arr[3]1;}} if(arr[0]-arr[1…