美文网首页数据结构和算法分析
js获取数组的所有子集

js获取数组的所有子集

作者: AvenKe | 来源:发表于2020-01-08 22:53 被阅读0次

使用javascript获取一个数组的所有子集,比如:
[1, 2, 3] 的所有子集是:
[[], [1], [2], [3], [1, 2], [1, 3], [2, 3], [1, 2, 3]]

解题思路:

假设res是一个二维空数组[[]], 遍历原数组arr,给当前结果res中的每一个子数组append arr[i],得到tempRes[[1]], 再把得到的结果加入到res当中,res变成[[], [1]],以此类推。

function allSubsets(arr){
    let res = [[]];
    for(let i = 0; i < arr.length; i++){
        const tempRes = res.map(subset => {
            const one = subset.concat([]);
            one.push(arr[i]);
            return one;
        })
        res = res.concat(tempRes);
    }
    return res;
}
allSubsets([1,2,3]); // [[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]

相关文章

  • js获取数组的所有子集

    使用javascript获取一个数组的所有子集,比如:[1, 2, 3] 的所有子集是:[[], [1], [2]...

  • 数组的索引和切片

    索引: 获取数组中特定位置元素的过程切片: 获取数组元素子集的过程 一维数组的索引和切片: 与Python的列表类...

  • 两种方法获取数组的所有子集

    一、递归计算 要注意的是递归跳出的条件,还有在把元素加到列表中时注意要使用一个临时变量,否则会报错,因为colle...

  • 【leetcode】子集

    【leetcode】子集 题目: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说...

  • 求数组的所有子集

    序言 在项目中,有时候我们需要求一个数组的所有子集。例如一个数组有三个元素,[a,b,c],求该数组的所有子集。分...

  • LeetCode-078-子集

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

  • 非空子集

    请编写一个方法,返回某集合的所有非空子集。 给定一个int数组A和数组的大小int n,请返回A的所有非空子集。保...

  • 小案例【倒计时+checkbox选中+全选触发】

    倒计时 DOM JS 验证码倒计时 获取checkbox选中值 获取所有被选中的checkbox值,并返回数组 全...

  • LeetCode刷题For Swift·78. 子集

    1、原题 给你一个整数数组 nums ,返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。 示例 1: 示...

  • 子集

    给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例...

网友评论

    本文标题:js获取数组的所有子集

    本文链接:https://www.haomeiwen.com/subject/fphsactx.html