代码随想录 -- 回溯 -- 子集

78. 子集 - 力扣(LeetCode)

如果把子集问题、组合问题、分割问题都抽象为一棵树的话,那么组合问题和分割问题都是收集树的叶子节点,而子集问题是找树的所有节点!

遍历这个树的时候,把所有节点都记录下来,就是要求的子集集合。

思路:

递归参数:nums,for循环的起始index,path数组。

递归出口:当遍历完数组nums时,return。

单层递归逻辑:将numsi加入path数组中,调用递归函数,将path的最后一个元素pop出来。

要在每次进入递归函数时将path收集到result中。

python 复制代码
class Solution(object):
    def back(self,nums,index,path):
        self.result.append(path[:])
        if index>=len(nums):
            return
        for i in range(index,len(nums)):
            path.append(nums[i])
            self.back(nums,i+1,path)
            path.pop()

    def subsets(self, nums):
        self.result=[]
        self.back(nums,0,[])
        return self.result
相关推荐
171320330计算机毕设编程4 分钟前
计算机毕业设计 基于Hadoop的新能源汽车发展前景分析 LW PPT
java·大数据·hadoop·python·算法·随机森林·线性回归
haluhalu.19 分钟前
深入理解 AI Agent(1.2):Harness 工程——模型之外的竞争力
前端·数据结构·人工智能·python·langchain·个人开发
垆边人似月.26 分钟前
幻兽防御战(贪心算法)
数据结构·算法
DongQiShanRen27 分钟前
六根硬件映射(下):物理闭环五步法,抽一条已实装的看
大数据·jvm·人工智能·算法·rust·哈希算法·集成学习
Code_Solitude31 分钟前
c语言:指针(3)+冒泡排序
java·c语言·算法
FPGA信号处理37 分钟前
【模式识别】第四节课:支持向量机
算法·机器学习·支持向量机
碧海银沙音频科技研究院1 小时前
面向长尾音频分类的知识蒸馏研究
人工智能·算法·音视频
alphaTao1 小时前
LeetCode 每日一题 2026/10/12-2026/10/18
算法·leetcode
青岚_Nox1 小时前
# C语言实战:函数完全指南——从基础概念到static/extern深度解析
算法
CCCCCCCCharlie2 小时前
深入解析I/O底层:文件描述符与缓冲区真相
linux·开发语言·c++·算法