JavaScript返回某集合中的所有子集(力扣面试题 08.04. 幂集)
Posted 橘猫吃不胖~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript返回某集合中的所有子集(力扣面试题 08.04. 幂集)相关的知识,希望对你有一定的参考价值。
记录力扣上面的一道题,在力扣上看见这个解法,抄下来学习一下。
幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
代码如下:
var subsets = function (nums)
let arr = [[]];// 添加空数组
for (let i = 0; i < nums.length; i++) // 控制循环次数
let len = arr.length;// 获取arr的长度
for (let j = 0; j < len; j++)
arr.push(arr[j].concat(nums[i]));
return arr;
;
以nums = [1,2,3]为例,进行说明:
i | 初始arr | len | j | arr[j] | num[i] | 添加的arr[j].concat(nums[i]) | 结束时arr |
---|---|---|---|---|---|---|---|
i=0 | [[]] | 1 | 0 | [] | 1 | [1] | [[],[1]] |
i=1 | [[],[1]] | 2 | 0 | [] | 2 | [2] | [[],[1],[2]] |
[[],[1],[2]] | 1 | [1] | 2 | [1,2] | [[],[1],[2],[1,2]] | ||
i=2 | [[],[1],[2],[1,2]] | 4 | 0 | [] | 3 | [3] | [[],[1],[2],[1,2],[3]] |
[[],[1],[2],[1,2],[3]] | 1 | [1] | 3 | [1,3] | [[],[1],[2],[1,2],[3],[1,3]] | ||
[[],[1],[2],[1,2],[3],[1,3]] | 2 | [2] | 3 | [2,3] | [[],[1],[2],[1,2],[3],[1,3],[2,3]] | ||
[[],[1],[2],[1,2],[3],[1,3],[2,3]] | 3 | [1,2] | 3 | [1,2,3] | [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3] |
以上是关于JavaScript返回某集合中的所有子集(力扣面试题 08.04. 幂集)的主要内容,如果未能解决你的问题,请参考以下文章