[Algorithm] Print All Subsets of a Set

Let's say given a number of array, you should print out, all the subet of this array.

Example: [1, 2]

Output:

> ""

> 1
> 2

> 1,2

 

The number of subset should be 2^n... 

 

复制代码
function print_set(subset) {
  if (subset.length === 0) {
    console.log('empty');
  }
  console.log(subset.filter(Boolean).join(','));
}


function all_subsets(given_array) {

  function helper(given_array, subset, i) {
    if (given_array.length === 0) {
      print_set([]);
    }

    if (i === given_array.length) {
      print_set(subset);
      return;
    }

    // in case of not include the current item
    subset[i] = null
    console.log(`set i: ${i} to null`);
    helper(given_array, subset, i + 1);
    // in case of inlcude the current item
    subset[i] = given_array[i]
    console.log(`set i: ${i} to ${given_array[i]}`);
    helper(given_array, subset, i + 1)
  }
  let subset = new Array(given_array.length);
  helper(given_array, subset, 0);
}

const data = [1, 2];
all_subsets(data);
/**
set i: 0 to null
set i: 1 to null
""
set i: 1 to 2
2
set i: 0 to 1
set i: 1 to null
1
set i: 1 to 2
1
 */
复制代码

 

posted @   Zhentiw  阅读(135)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2017-03-10 [Angular] Export directive functionalities by using 'exportAs'
2017-03-10 [Postgres] Group and Aggregate Data in Postgres
2017-03-10 [Ramda] Create a Query String from an Object using Ramda's toPairs function
2017-03-10 [Ramda] Filter an Array Based on Multiple Predicates with Ramda's allPass Function
2016-03-10 [RxJS] Reactive Programming - Using cached network data with RxJS -- withLatestFrom()
点击右上角即可分享
微信分享提示