「每日LeetCode」2021年12月24日

本文最后更新于:2023年3月19日 晚上

面试题 08.04. 幂集

面试题 08.04. 幂集

幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素
说明:解集不能包含重复的子集。
示例:
** 输入: nums = [1,2,3] ** 输出: [ [3],   [1],   [2],   [1,2,3],   [1,3],   [2,3],   [1,2],   [] ]

思路

常规回溯法即可。

解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
* @param {number[]} nums
* @return {number[][]}
*/
var subsets = function (nums) {
const temp = [],
res = [];
const dfs = (index) => {
res.push(temp.slice());
for (let i = index + 1; i < nums.length; i++) {
temp.push(nums[i]);
dfs(i);
temp.pop();
}
};
dfs(-1);
return res;
};