`

0821集合问题

阅读更多

{ aaa, bbb, ccc},{bbb, ddd }, { eee, fff }, { ggg },{ddd,hhh} 等一些字符串的集合
要求把交集不为空的集合并起来,如上例会得到 {  aaa, bbb, ccc, ddd, hhh}, {eee,fff},{ggg}
(1) 思想 (2) 算法及复杂度 (3) 改进

 

算法思路:

1. 将每个集合中的元素放到一个HashSet中(方便快速查找)       O(n)

2. 根据每个hashset中元素的个数建最小堆                            O(n)

3. 从堆中取出元素数最少的集合,查找其他HashSet(标志为set1)中是否有与该集合中相同的元素,

       如果有:堆顶hashset与set1进行合并,删除堆顶元素,删除set1,插入合并后的hashset

       如果没有:删除堆顶元素,将其暂存起来 

    如果堆的大小为1时,停止运算                                           O(logn)

 

5. 取出暂存的hashset 和 堆顶hashset, 并打印剩下的hashset  O(n)

 

时间复杂度:

O(n)+O(log(n))

 

算法实现:


















































































































 

 

 

 

 

分享到:
评论

相关推荐

    SM2246EN_MPO0819A_FWO0821D.zip

    描述中的内容与标题相同,进一步确认了这是一个文件集合,可能是针对特定型号或系列的产品。 标签 "软件测试" 提供了关键信息,表明这些文件可能与软件测试流程相关,可能包括测试工具、测试用例、测试报告或者是...

    MTK方案工具.zip

    【MTK方案工具.zip】这个压缩包集合了在基于MediaTek(MTK)芯片的功能手机项目开发中常用的一些工具,这些工具对于工程师来说是至关重要的,因为它们可以帮助完成设备连接、固件升级、故障排查等一系列任务。...

    贱人工具箱5.2

    这款工具箱集合了一系列针对CAD操作的实用程序,旨在提升设计师的工作效率,简化复杂的绘图和编辑任务。 CAD,全称为Computer-Aided Design,是广泛应用于工程、建筑、产品设计等多个领域的技术。它允许用户通过...

    C语言题库-信.doc

    **解析:** 字符串常量是一系列字符的集合,通常用双引号括起来。因此,正确答案是A。 **2. PC 机 中,’\n’在内存占用的字节数是( A )。** - **A. 1** - **B. 2** - **C. 3** - **D. 4** **解析:** ’\n’是...

    C#编程经验技巧宝典

    54 <br>0075 用回溯法找出n个自然数中取r个数的全排列 55 <br>0076 约瑟夫环问题 56 <br>0077 猴子选大王 57 <br>0078 如何判断IP是否正确 57 <br>0079 如何将小写金额转换为大写金额 57...

Global site tag (gtag.js) - Google Analytics