【 每天学习一点算法 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)

相关推荐
木井巳6 小时前
【BFS/DFS 解决 FloodFill 算法】太平洋大西洋水流问题
java·算法·leetcode·深度优先·广度优先·宽度优先·推荐算法
我爱cope7 小时前
【计算机网络 | 网络层11:ICMP 协议:Ping 和 Traceroute 的底层原理】
网络·学习·计算机网络
心抵鹊7 小时前
归并排序之翻转对(hard)
数据结构·算法
白山编程大哥7 小时前
Java 集合算法:从排序、查找到底层原理的实战指南
java·python·算法
shehuiyuelaiyuehao7 小时前
算法34,位运算符操作,总结
算法
问天_观心7 小时前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
Navigator_Z7 小时前
LeetCode //C - 1224. Maximum Equal Frequency
c语言·算法·leetcode
苏生Susheng8 小时前
【软件实施】Linux系统Shell脚本教程
linux·运维·服务器·chrome·spring boot·学习·实施
Navigator_Z8 小时前
LeetCode //C++ - 1226. The Dining Philosophers
c语言·算法·leetcode
FOORIR8 小时前
3D视觉+AI客流系统怎么做:从Sensor Pipeline到数据事件引擎
算法