【 每天学习一点算法 2026/03/19】子集

每天学习一点算法 2026/03/19

题目:子集

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

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

依然跟之前的题类似,还是看做一个树,每个节点的子节点有两种选择,选或者不选,然后递归遍历出所有的路径就行了

typescript 复制代码
function subsets(nums: number[]): number[][] {
  const resArr = []
  function hepler (surplus: number[], res: number[]) {
    if (surplus.length === 0) {
      // 数字选择完毕,保存结果,回归上层
      resArr.push(res)
      return
    }
    const currentNums = [...surplus] // 不改动当前层的 剩余数字数组
    const current = currentNums.shift() // 取出当前层选择的数字
    // 不选
    hepler(currentNums, [...res])
    // 选
    hepler(currentNums, [...res, current])
  }
  hepler(nums, [])
  return resArr
};

题目来源:力扣(LeetCode)

相关推荐
To_OC8 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
旖-旎9 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
To_OC9 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
世人万千丶10 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
delishcomcn10 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法
触底反弹10 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
雪碧聊技术11 小时前
力扣 LCR 091. 粉刷房子 —— 动态规划入门详解
算法·动态规划
遇乐的果园13 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
CV-Climber13 小时前
检索技术的实际应用
人工智能·算法