算法笔记13:幂集

145 阅读1分钟

面试题08.04. 幂集

竟然随机到了一道自己面试的时候常出的题目。这道题目思路就是对于每一个元素来说,要加到结果里面的新子集就是前面已经出现的所有子集全都加上自己即可。Base case 就是一个空集。

代码如下:

const subsets = (nums) => {
    const result = [[]];
    
    for (const num of nums) {
        const newSubsets = result.map(subset => [...subset, num]);
        result.push(...newSubsets);
    }
    
    return result;
};