【力扣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. 每一个元素都有选和不选两个选择
相关推荐
2501_9011478315 小时前
打家劫舍问题的动态规划解法与性能优化笔记
笔记·算法·动态规划
plus4s15 小时前
2月13日(73-75题)
数据结构·c++·算法
近津薪荼15 小时前
dfs专题8——子集
算法·深度优先
独断万古他化15 小时前
【算法通关】位运算:位图、异或消消乐,高频算法题全解
算法·位运算
你的冰西瓜16 小时前
C++ STL算法——修改序列算法
开发语言·c++·算法·stl
大黄说说16 小时前
彻底删除重复节点——LeetCode 82 题「有序链表去重 II」详解
算法·leetcode·链表
如意猴16 小时前
003【高精度算法】加法/减法/乘法/除法
算法
仰泳的熊猫16 小时前
题目1465:蓝桥杯基础练习VIP-回形取数
数据结构·c++·算法·蓝桥杯
Hag_2016 小时前
LeetCode Hot100 15.三数之和
算法·leetcode·职场和发展
俩娃妈教编程16 小时前
洛谷选题:P1307 [NOIP 2011 普及组] 数字反转
c++·算法