两个链表的并集和交集2024年8月28日 | 阅读 7 分钟 创建列表的并集和交集,包含两个给定链表中存在的元素的并集和交集。输出列表中元素的排列方式无关紧要。 示例示例-1 输出 Intersection List: 4->10 Union List: 2->8->20->4->15->10 方法 1: 简单 代码输出 First list is 10 15 4 20 Second list is 8 4 2 10 Intersection list is 4 10 Union list is 2 8 20 4 15 10 复杂性分析 时间复杂度 时间复杂度 O(m*n)。 其中,“m”和“n”分别指第一和第二个链表中的元素总数。 对于并集,我们检查 list-2 中的每个元素是否已存在于使用 list-1 创建的结果列表中。 对于交集,我们检查 list-1 中的每个元素是否也存在于 list-2 中。 额外空间: O (1)。 未使用任何数据结构来存储值。 方法 2: 使用归并排序 此方法中用于交集和并集的方法非常相似。在对提供的链表进行排序后,我们遍历排序后的链表以获得并集和交集。 以下是为获得交集和并集列表需要执行的操作。 使用归并排序对第一个链表进行排序。此步骤需要 O(mLogm) 时间。有关此阶段的信息,请参阅此文章。 使用归并排序对第二个链表进行排序。此步骤需要 O(nLogn) 时间。有关此阶段的信息,请参阅此文章。 使用线性搜索,找到两个排序链表的交集和并集。此步骤需要 O(m + n) 时间。用于排序数组的相同算法可用于此阶段。 此方法的总时间复杂度为 O(mLogm + nLogn),比方法 1 的时间消耗少。 方法 3: 散列 并集 (list1, list2) 创建一个空的哈希表,并将结果列表初始化为 NULL。在遍历两个链表时,逐个检查每个元素是否在哈希表中。如果元素不存在,则将其添加到结果列表中。如果元素存在,则忽略它。 交集 (list1, list2) 创建一个空的哈希表,并将结果列表初始化为 NULL。遍历 list-1。检查 list-1 中的每个元素,并将其插入哈希表中。在遍历 list-2 时,逐个查找哈希表中的每个元素。如果元素存在于哈希表中,则将其插入结果列表中。如果元素不存在,则忽略它。 以上两种方法都假设没有重复项。 代码输出 First List is 10 15 4 20 Second List is 8 4 2 10 Intersection List is 10 4 Union List is 2 4 20 8 10 15 复杂性分析 时间复杂度 时间复杂度 O(m+n)。 其中,“m”和“n”分别指第一和第二个链表中的元素总数。 并集需要遍历两个链表,将元素存储在哈希映射中,并更新每个计数。 对于交集:应遍历 list-1,将其元素存储在哈希映射中,然后检查 list-2 中的每个元素是否已存在于映射中。这需要 O(1) 的时间延迟。 对于交集,我们检查 list-1 中的每个元素是否也存在于 list-2 中。 额外空间: O (m+n)。 使用哈希映射数据结构来存储值。 下一个主题数组中的第 K 大元素 |
简介:动态数据结构在计算机科学中起着至关重要的作用,它能够高效地操作和查询变化的数据集。动态段树和多项式哈希表提供了强大的组合,用于处理大型数据集上的动态范围查询。动态段树:动态段树提供了一个灵活的结构……
阅读 8 分钟
引言:链表是计算机科学和编程中用于多种用途的基本数据结构。虽然它们提供了更大的动态内存分配灵活性,但如果错误地包含循环(通常称为循环依赖),它们也会带来困难。链表的循环...
5 分钟阅读
矩阵遍历可能比我们想象的要棘手,这使得它成为面试官喜欢提问的问题。我们经常会遇到与二维矩阵相关的问题,并要求以特定模式打印矩阵的元素。其中一种模式是“蛇形模式”。在本文中,我们...
阅读 8 分钟
最低公共祖先 (LCA) 是图论和计算机科学中的一个术语,通常在树(尤其是二叉树)的上下文中用于。树中两个节点的 LCA 被定义为是 LCA 的最低(最深)节点...
7 分钟阅读
简介:二叉树是计算机科学和数学中使用的基本数据结构。完全二叉树是一种二叉树,其中每个节点有一个或两个子节点。完全二叉树中的每个节点都可以着色,并且计算...
阅读 4 分钟
反转队列是指将第一个元素变成最后一个元素,将最后一个元素变成第一个元素的過程。通过反转队列,我们改变了其元素将被处理或访问的顺序。这可以通过存储临时组件来完成……
5 分钟阅读
问题陈述 如果一个正整数满足两个标准,则认为它是“美观”的:数字中的偶数位数等于奇数位数。该数字可被给定的整数 k 整除。我们的任务是计算并返回美观数字的总数...
阅读 10 分钟
计数排序算法:计数排序是一种处理输入值范围的排序算法。计数排序算法是一种整数排序算法。计数排序在某种程度上与其他排序方法不同,因为它是一种线性排序算法。它计数...
阅读 6 分钟
数据可以定义为以非常经济的形式转换以便翻译或处理的信息。数据,包括视频、图像、声音和文本,都表示为二进制值,代表 0 或 1。使用这两个数字,会生成模式来存储不同类型的信息...
阅读 6 分钟
一种名为二维二叉索引树(2D BIT)的复杂数据结构,通常称为 Fenwick 树,用于通过维护累积和或频率来快速更新和查询二维数组(矩阵)。2D BIT 将此概念扩展到二维场景,类似地...
阅读9分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India