[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 === ) {
console.log('empty');
}
console.log(subset.filter(Boolean).join(','));
}
function all_subsets(given_array) {
function helper(given_array, subset, i) {
if (given_array.length === ) {
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 + );
// 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 + )
}
let subset = new Array(given_array.length);
helper(given_array, subset, );
}
const data = [, ];
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
*/
[Algorithm] Print All Subsets of a Set的更多相关文章
- [Algorithm] Print 2-D array in spiral order
The idea to solve the problem is set five variable, first direction, we need to switch direction aft ...
- python中的迭代器&&生成器&&装饰器
迭代器iterator 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束. 迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退.另外, ...
- 用 150 行 Python 代码写的量子计算模拟器
简评:让你更轻松地明白,量子计算机如何遵循线性代数计算的. 这是个 GItHub 项目,可以简单了解一下. qusim.py 是一个多量子位的量子计算机模拟器(玩具?),用 150 行的 python ...
- 第4天:scipy库
一.SciPy库概述 1.numpy提供向量和矩阵的相关操作,高级计算器 2.SciPy在统计.优化.插值.数值积分.视频转换等,涵盖基础科学计算相关问题. (额,对统计和概率,数理完全一窍不通) 3 ...
- authenticate验证的流程
from django.contrib.auth import authenticate # 默认的第一个加密算法 class PBKDF2PasswordHasher(BasePasswordHas ...
- 动态规划法(八)最大子数组问题(maximum subarray problem)
问题简介 本文将介绍计算机算法中的经典问题--最大子数组问题(maximum subarray problem).所谓的最大子数组问题,指的是:给定一个数组A,寻找A的和最大的非空连续子数组.比如 ...
- Intel DAAL AI加速 ——传统决策树和随机森林
# file: dt_cls_dense_batch.py #===================================================================== ...
- DBSCAN聚类︱scikit-learn中一种基于密度的聚类方式
一.DBSCAN聚类概述 基于密度的方法的特点是不依赖于距离,而是依赖于密度,从而克服基于距离的算法只能发现"球形"聚簇的缺点. DBSCAN的核心思想是从某个核心点出发,不断向密 ...
- 数据结构( Pyhon 语言描述 ) — — 第3章:搜索、排序和复杂度分析
评估算法的性能 评价标准 正确性 可读性和易维护性 运行时间性能 空间性能(内存) 度量算法的运行时间 示例 """ Print the running times fo ...
随机推荐
- 2018-2019-2 20162318《网络攻防技术》Exp5 MSF基础应用
1.实验内容 1.一个主动攻击实践,如ms08_067 2. 一个针对浏览器的攻击,如ms11_050) 3. 一个针对客户端的攻击,如Adobe 4. 成功应用任何一个辅助模块 2.基础问题回答 2 ...
- [BalticOI2002]Bicriterial routing
OJ题号: BZOJ1375.ECNU1468 题目大意: 给定一个无向连通图,每条边有两个权值w1和w2.定义一条路径是优秀的当且仅当没有别的路径满足两个权值的和都比该路径小,求s到t的优秀路径条数 ...
- sgu 176 上下界网络流最小可行流带输出方案
算法步骤: 1. 先将原图像最大可行流那样变换,唯一不同的是不加dst->src那条边来将它变成无源无汇的网络流图.直接跑一边超级源到超级汇的最大流. 2. 加上刚才没有加上的那条边p 3. 再 ...
- pygame系列_第一个程序_图片代替鼠标移动
想想现在学校pygame有几个钟了,就写了一个小程序:图片代替鼠标移动 程序的运行效果: 当鼠标移动到窗口内,鼠标不见了,取而代之的是图片..... ========================= ...
- Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) B. Problems for Round 水题
B. Problems for Round 题目连接: http://www.codeforces.com/contest/673/problem/B Description There are n ...
- jsoncpp 0.5 ARM移植
1.下载jsonapp 0.5 https://github.com/open-source-parsers/jsoncpp 2.编译 platform 没有包含 arm 平台,需要把源码提取出来,独 ...
- oracle开发学习篇之集合运算符以及集合异常捕获
--取出集合;长度 declare type list_nested ) not null; v_all list_nested := list_nested('a','b','c','d','c', ...
- WindowsAPI详解——GetDriveType 获得逻辑驱动器的类型
http://flyxxtt.blogbus.com/logs/43181576.html 函数原型:UINT GetDriveType(LPCTSTR lpRootPathName) 参数lpRoo ...
- maven里如何根据不同的environment打包
一个项目里总会有很多配置文件.而且一般都会有多套环境.开发的.测试的.正式的.而在这些不同的环境这些配置的值都会不一样.比如mail的配置.服务的url配置这些都是很常见的.所以在打包的时候就要根据e ...
- WIN8.1 IE11 F12开发者人员工具,开启什么都不显示
WIN8.1 IE11 F12开发者人员工具,开启什么都不显示,求大神帮忙? IE11也没法重装, 还原IE设置过了. 没有效果. 也试过把IE停掉,重启后再重新打开 也没用 已经解决了 删除 ...