Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >查找一组数组的所有子集(perl)

查找一组数组的所有子集(perl)
EN

Stack Overflow用户
提问于 2018-06-08 17:34:11
回答 1查看 226关注 0票数 3

我有一堆数组@a1,@a2,... @ak (我不知道有多少)。我想创建一个数组,它包含数组的幂集合的并集。也就是说,当且仅当该数组的条目对于某些i包含在@ai中时,该数组才在输出中。输出不应该有重复项。

我能想到的唯一方法是创建一个包含每个数组的幂集合的数组,然后合并这些数组。但是,在联合时,我必须检查入口是否相等。

还有更好的吗?

像这样的东西,取所有数组的并集,取幂集,然后删除不应该在那里的东西,因为数组的并集太大了。

编辑:例如,假设输入为(1,2),(2, 3,4),则输出应为(),(1),(2),(3),(4),(1,2),(2,3),(3,4),(2,4),(2,3,4)。任何订单都可以接受。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 19:38:02

检查https://metacpan.org/pod/List::PowerSet

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use strict;
use warnings;

use List::PowerSet 'powerset_lazy';

my @arr = (
        [1,2],
        [2,3,4],
);
my %hash;
for my $v (@arr) {
    my $ps = powerset_lazy(@$v);
    while (my $set = $ps->()) {
        my $str = join ",", @$set;
        next if $hash{$str}++;
        print "($str)\n";
    }
}

输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(1,2)
(2)
(1)
()
(2,3,4)
(3,4)
(2,4)
(4)
(2,3)
(3)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50765821

复制
相关文章
730. 所有子集的和递归
给一整数 n, 我们需要求前n个自然数形成的集合的所有可能子集中所有元素的和 样例
和蔼的zhxing
2018/09/04
6740
730. 所有子集的和递归
所有子集 剑指 Offer II 079
给定一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。
叶茂林
2023/07/30
1360
所有子集 剑指 Offer II 079
傻瓜方法求集合的所有子集问题(java版)
    给定任意长度的一个集合,用一个数组表示,如{"a", "b","c"},求它的所有子集。结果是{ {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}}和一个空集。
天涯泪小武
2019/01/17
9720
[javaSE] 数组(查找-二分查找)
前提数组必须是有序的 定义最小,最大,中间的角标索引 int min,max,mid; min=0; max=arr.length-1; mid=(min+max)/2; 上面的索引需要变化,使用循环,条件:当中间值不等于目标值时 int min,max,mid; min=0; max=arr.length-1; mid=(min+max)/2; while(arr
唯一Chat
2019/09/10
9730
回溯树求集合全排列和所有子集
本公众号主要推送关于对算法的思考以及应用的消息。算法思想说来有,分而治之,深度搜索,动态规划,回溯,贪心等,结合这些思想再去思考如今很火的大数据,云计算和机器学习,是不是也别有一番风味呢? 踏上算法之路,风景这边独好! 01 — 通过这篇文章,你学到什么 通过这篇文章,我们可以进一步体会到深度优先搜索算法在具体问题中的应用,通过详细地示意图,深刻明白递归调用时的进栈,出栈过程;最后通过Leetcode 相似解法的题目进一步加深对深度搜索算法的理解。 02 — 搜索算法 搜索算法,常见的几种形式,深度优先,
double
2018/04/02
1.1K0
回溯树求集合全排列和所有子集
一组让京东所有研发人泪崩的照片
这两天,所有京东人儿的朋友圈都被周六晚上的京东家宴刷屏了,来自全国入职满5年、10年的大佬和超级大佬们齐聚总部A座大厅,端起“果冻杯”与东哥一同把酒言欢,回忆起公司一路走来难以忘却的激情与热血。 见证
京东技术
2018/06/20
3.2K0
pycharm所有文件中查找_python查找文件
PyCharm的Find in Path功能提供了全局查找功能,快捷键为Ctrl + Shift + F。Find则是在当前文件查找,快捷键为Ctrl + F。这两个个功能非常实用。
全栈程序员站长
2022/09/25
2.6K0
pycharm所有文件中查找_python查找文件
旋转数组查找
给定一个排序数组nums(nums中有无重复元素),且nums可能以某个未知下 标旋转,给定目标值target,求target是否在nums中出现,若出现返回所在下标 ,未出现返回-1。 LeetCode 33. Search in Rotated Sorted Array
小飞侠xp
2018/08/29
7980
二维数组的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。        当我们需要解决一个复杂的问题时,一个很有效的办法就是从一个具体的问题入手,通过分析简单具体的例子,试图寻找普遍的规律。针对这个问题,我们不妨也从一个具体的例子入手。下面我们以在题目中给出的数组中查找数字7为例来一步步分析查找的过程。        我们发现如下规律:首先选取数组中右上角的数字。如果该数字等于要查找的数
猿人谷
2018/01/17
1.3K0
冒泡法以及数组的查找
冒泡排序法:通过比较两个相邻的数的大小(如果前面的数大于后面的数就进行交换 / 后面的数大于前面的数就进行交换 ),来进行一个数组的排序,使整个数组中的数据按  从小到大/从大到小  的顺序进行排序。
zxmttkx
2022/12/02
5480
冒泡法以及数组的查找
查找数组中重复的数字
        题目来源于《剑指Offer》中的面试题3:找出数组中重复的数字。   // 题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,   // 也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2, 3, 1, 0, 2, 5, 3},   // 那么对应的输出是重复的数字2或者3。         解决方法有多种,包括数组排序,哈希表法,以及作者推荐的重排数组法。此处介绍自己的一个做法,以空间换
waylon
2018/03/08
4K0
LeetCode 90 | 经典递归问题,求出所有不重复的子集II
今天是LeetCode专题第56篇文章,我们一起来看看LeetCode第90题,子集II(Subsets II)。
TechFlow-承志
2020/07/30
8150
查找数组元素位置
一个js练习题 题目描述 找出元素 item 在给定数组 arr 中的位置  输出描述: 如果数组中存在 item,则返回元素在数组中的位置,否则返回 -1 输入例子: indexOf([ 1, 2, 3, 4 ], 3) 输出例子: 2 代码如下: function indexOf(arr, item) { var len = arr.length,flag=0; for( var i =0; i<len;i++) { if(arr[i]==ite
用户1749219
2018/05/16
2.2K0
有序数组中与任意数组查找不同的部分-二分查找
题目:在一串有序数组中,给出一串随机数组查找其中不同的部分 数组A:{2,3,5,8,9,11} 数组B:{9,8,2,10,1} 结果:10,1 import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.Iterator; import java.util.List; public class GetAllNotIncluded { // 利用二分查找查找与子串不
sr
2018/08/20
1.4K0
使用left join查找用户的所有同事
为了找出某个用户所在组织(部门)的所有员工,即该用户的所有同事包括他自己,常见的做法是通过用户找到他所在的组织(部门),然后再通过部门找到所有的员工。而我在实践中发现了另外一种做法,不知道好坏,仅供参考。
用户3579639
2018/10/22
1.1K0
Day15-递归&回溯-无重复数组的子集
本来昨天题的代码都写完了,但pm姐姐说,这个需求明天必须上,没办法,昨天就没时间写文章了
BUPTrenyi
2019/07/15
4420
Day15-递归&回溯-无重复数组的子集
Day16-递归&回溯-有重复数组的子集
其实今天这道题本应该在昨天的,第二篇文章中的,奈何需求多而紧,着实没时间写第二篇文章了,你们可不要以为我是划水啊
BUPTrenyi
2019/07/15
4840
Day16-递归&回溯-有重复数组的子集
linux中查找所有已安装的字体
介绍 有一种快速的方法可以在你的 Linux 中找到所有已安装的字体。 在本文中,我们将使用fc-list命令列出Linux 系统上的所有字体和样式。 列出所有字体 要列出 Linux 系统上所有已安装的字体,请运行以下命令 > fc-list /usr/share/fonts/urw-base35/NimbusMonoPS-Italic.otf: Nimbus Mono PS:style=Italic /usr/share/fonts/urw-base35/D050000L.t1: D050000L:st
入门笔记
2022/06/02
8.1K0
LeetCode 1863. 找出所有子集的异或总和再求和(DFS)
一个数组的 异或总和 定义为数组中所有元素按位 XOR 的结果;如果数组为 空 ,则异或总和为 0 。
Michael阿明
2021/09/06
6490
[剑指offer] 二维数组中的查找
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数
尾尾部落
2018/09/04
2.1K0
[剑指offer] 二维数组中的查找

相似问题

查找数组中的所有子集

60

查找数组中所有唯一的子集

33

查找所有子集

11

查找具有和0的数组的所有子集

32

打印一组的所有子集

36
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文