在 Python 中带随机和下一个指针的克隆链表2024 年 8 月 29 日 | 阅读 6 分钟 链表是通过随机指针创建的。给定一个 N x N 的链表,其中每个节点有两个连接,一个指向下一个节点,另一个指向列表中的任意节点。我们必须在 O(N) 时间内复制这个链表。 请注意,“next”指针指向链表中的下一个节点,而“random”指针可能指向链表中的任意节点。 方法 - 1首先创建一个仅包含“next”指针的单链表,然后将新节点映射到其对应的现有链表节点。您现在可以使用新形成的列表中的任何节点来指向任意节点,通过此映射。 以下是上述思路的算法方法
代码 输出 The initial linked list is as follows: 2(9) -> 6(2) -> 9(15) -> 13(9) -> 15(6) 2 : 2, 6 : 6, 9 : 9, 13 : 13, 15 : 15 The clone of the linked list is: 2(9) -> 6(2) -> 9(15) -> 13(9) -> 15(6) 时间复杂度:此程序的时间复杂度为 O(N),其中 N 是链表中的节点数。我们没有使用任何嵌套循环,而是以线性方式遍历链表;因此,时间复杂度也是线性的。 辅助空间:程序的空间复杂度也为 O(N)。由于我们创建了一个新的链表,因此空间复杂度是线性的。 方法 2(优化空间复杂度)下面是优化程序空间复杂度的方法 我们将创建一个复制节点并将其存储在原始节点与其下一个节点之间。 这意味着对于节点 N,我们将创建一个值与 N 相同的节点并将其存储为 N -> next。该节点将充当复制节点。复制节点的随机指针将指向 N -> random -> next,因为它是 N -> random 的复制品。 以下是上述思路的算法方法
代码 输出 The initial linked list is as follows: 2 ( 9 ) -> 6 (2) -> 9 (15) -> 13 (9) -> 15 (6) The clone of the linked list is: 2 ( 9 ) -> 6 (2) -> 9 (15) -> 13 (9) -> 15 (6) 时间复杂度:此程序的时间复杂度也为 O(N)。我们以线性方式遍历链表,因此时间复杂度也是线性的。 辅助空间:由于在此方法中我们没有创建任何映射,仅将节点对象存储在原始链表中,因此此方法的空间复杂度是常数。空间复杂度为 O(1)。 下一个主题最大乘积子数组 |
re.sub() 是 Python re(正则表达式)模块中的一个函数。它用于将字符串中所有出现的模式替换为新字符串。该函数接受三个参数:pattern:要在输入字符串中搜索的正则表达式模式。repl:...
阅读 2 分钟
在下面的教程中,我们将了解如何混淆 Python 程序。我们将使用一个名为 pyarmor 的 Python 包进行混淆。我们有时可能会遇到这样一种情况,即由于某些原因,我们必须将代码直接交付给客户。但是,我们...
阅读 4 分钟
legendre.legder 方法 Python Legendre 模块提供了几个函数,例如分类账,可用于对 Legendre 系列进行数学和微积分运算。它是 Legendre 类提供的功能之一。以下是分类账方法的列表...
阅读 3 分钟
Python 是一种广泛使用的编程语言,在 Web 开发、数据分析、人工智能和科学计算等各个领域得到广泛应用。它具有许多优点,使其成为各种类型项目的合适选择。出于各种原因,...
阅读 4 分钟
在计算机科学中,线程是命令的集合,可以通过调度程序(操作系统的一部分)单独控制。线程用于同时运行多个线程。线程意味着程序中的多个任务和函数调用。多线程程序…
阅读 4 分钟
SNMP,即简单网络管理协议,是 SDN 的必要工具,是控制软件中设备的最佳选择。除此之外,应用程序内访问是 SNMP 的主要目的。毫无疑问,所有监控系统都利用 SNMP 来...
11 分钟阅读
组合科学中的一个排列组合的错排是其组成部分出现在其原始位置的组成部分。例如,对于序列 [1, 2, 3, 4],一个错排将是 [2,...
阅读 4 分钟
? RESTful API,或简称为 REST API,是一种遵循表征性状态传输 (REST) 架构原则的 Web 服务。REST 是一组应用于 Web 服务的架构约束,可用于创建高度可伸缩和灵活的 Web ...
阅读 4 分钟
Python 中的运算符重载意味着提供超出其预定义操作含义的扩展含义。例如,我们使用“+”运算符来添加两个整数以及连接两个字符串或合并两个列表。我们可以通过重载“+”运算符来实现这一点...
5 分钟阅读
如今,万物皆有移动应用。从健康到教育,没有一个领域没有应用。脑海中一闪而过的想法,一经查证,往往已经有了相应的应用。问题是,有大量的...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India