大家好,欢迎来到《LeetCode趣味解题》!今天我们要讨论的是第78题——子集。这道题目要求我们找出一个集合的所有子集。这就像是在一大堆水果中挑选出所有可能的组合,或是在衣柜中挑选出所有可能的穿搭方式。让我们一起来探索多种解法,深入理解这个问题。
题目描述
给你一个整数数组 nums
,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
示例1:
输入:nums = [1,2,3]
输出:
[
[],
[1],
[2],
[3],
[1,2],
[1,3],
[2,3],
[1,2,3]
]
示例2:
输入:nums = [0]
输出:[[],[0]]
方法一:递归回溯法
思路
递归回溯法是一种经典的解决组合问题的方法。我们可以将每个元素看作一个决策点,在每个决策点我们可以选择包含或者不包含当前元素。通过这种方式,我们可以构建出所有的子集。
代码实现
import java.util