【力扣100】78.子集

添加链接描述

python 复制代码
class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        # 思路是回溯,这道题和【全排列】不一样的地方是出递归(收获)的判断条件不一样
        def dfs(path,index,res):
            res.append(path[:])
            for i in range(index,len(nums)):
                path.append(nums[i])
                dfs(path,i+1,res)
                path.pop()
        
        res=[]
        dfs([],0,res)
        return res

思路是:

  1. 回溯和递归
  2. 我怎么感觉这种题背下来就好?

解法二

python 复制代码
class Solution:
    def subsets(self, nums: List[int]) -> List[List[int]]:
        # 思路是每一个元素都有取和不取两种选择:
        def backtrack(path,index,res):
            if index==len(nums):
                res.append(path[:])
                return
            backtrack(path+[nums[index]],index+1,res)
            backtrack(path,index+1,res)
        res=[]
        backtrack([],0,res)
        return res

思路是:

  1. 每一个元素都有选和不选两个选择
相关推荐
池央4 分钟前
贪心算法-递增的三页子序列
算法·贪心算法
lrh1228004 分钟前
详解K近邻(KNN)算法:原理、实现与优化
算法·机器学习
程途拾光15812 分钟前
算法公平性:消除偏见与歧视的技术探索
大数据·人工智能·算法
秋风战士13 分钟前
无线通信算法之340:信道均衡除法定标讨论
算法·fpga开发·信息与通信
沧澜sincerely16 分钟前
蓝桥杯算法练习
算法·职场和发展·蓝桥杯
一起养小猫19 分钟前
Flutter for OpenHarmony 进阶:手势识别与碰撞检测算法深度解析
算法·flutter·harmonyos
Herbert_hwt21 分钟前
数据结构与算法绪论:为何学、学什么、如何避坑
c语言·数据结构·算法
XX風21 分钟前
1-3-kernel PCA
算法
今儿敲了吗24 分钟前
11| 子集
c++·笔记·算法
Jinuss28 分钟前
源码分析之React中Scheduler调度器的最小二叉堆
javascript·算法·react.js