链表——随机链表的复制

        基于这篇文章算法的改进随机链表复制

        这道题的关键在于完成链表复制后,如何修改random指针。即如何通过遍历原链表找到复制链表的结点。

        

        过去的算法是修改原链表的next,让每个复制结点位于原链表结点后面。

        但是,在C++的STL库中,有应用于KV模型的容器map,因此有了新的思路:

        map 的结点为 K原链表结点和V复制链表结点 

        先完成复制链表,同时将<原链表结点,复制链表结点>的键值对存到map中。

        再遍历原链表,此时,可以通过基于库中map类重载的[]运算符,就能返回原链表结点中random指向结点对应的V即复制结点。

 Node* copyRandomList(Node* head) {Node* copyhead = nullptr,*copytail = nullptr;Node* cur = head;map<Node*,Node*> Node_map;while(cur){if(copytail == nullptr){copyhead = copytail = new Node(cur->val);}else{copytail->next = new Node(cur->val);copytail = copytail->next;}Node_map[cur] = copytail;cur = cur->next;}cur = head;Node* copy = copyhead;while(cur){if(cur->random == nullptr){copy->random = nullptr;}else{copy->random = Node_map[cur->random];}cur = cur->next;copy = copy->next;}return copyhead;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868278.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下载安装JavaFX及解决报错:缺少 JavaFX 运行时组件, 需要使用该组件来运行此应用程序|Eclipse

目录 1.下载并解压 2.Eclipse配置 3.报错问题 解决方法1&#xff1a;将javaSE更改到9以下 解决方法2&#xff1a; 使用module-info.java配置解决 1.下载并解压 JavaFX下载地址&#xff1a;JavaFX - Gluon 选择合适自己电脑配置的sdk版本下载 打不开网页的参考这个博客&…

智能视频监控如何助力体育场馆安全管理:安防监控EasyCVR视频综合管理方案

近期有新闻报道&#xff0c;6月30日&#xff0c;17岁的中国国家羽毛球运动员在亚洲青年羽毛球锦标赛中&#xff0c;突然晕倒并抽搐&#xff0c;尽管被送往医院抢救&#xff0c;该运动员仍在当晚不幸离世。运动猝死不仅发生于职业运动员身上&#xff0c;在普通健身者中也时有发生…

5.opencv深浅拷贝

图像处理的复制操作 深浅拷贝 图像复制分成两种&#xff0c;第一种假复制&#xff0c;从原图片选择一部分图片拿出来观察&#xff0c;此时新生成的图片和原图实际上是同一张图片&#xff0c;即浅拷贝 将图片的一部分复制下来&#xff0c;放到新的内存中&#xff0c;即两张完全…

Tell Me Why:利用大型语言模型进行可解释的公共健康事实核查

Tell Me Why: Explainable Public Health Fact-Checking with Large Language Models 论文地址:https://arxiv.org/abs/2405.09454https://arxiv.org/abs/2405.09454 1.概述 最近的COVID-19大流行突显了公共健康领域事实核查的关键需求。在信息通过社交媒体平台迅速传播的时…

SpringMVC系列十二: 异常处理

异常处理 异常处理基本介绍局部异常应用实例Debug处理流程 全局异常应用实例Debug处理流程异常处理时: 局部异常 优先级高于 全局异常 自定义异常应用实例Debug处理流程 SimpleMappingExceptionresovler基本说明应用实例对未知异常进行统一处理异常处理的优先级梳理 上一讲, 我…

用ChatGPT辅助论文写作又怕学术造假?这样用就对了!

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 随着人工智能技术的发展&#xff0c;ChatGPT等语言模型在学术研究中的应用日益广泛。然而&#xff0c;在利用这些工具时&#xff0c;如何避免学术造假成为一个重要问题。学术造假不仅损…

flask、fastapi在服务器制作接口携参访问返回参数

flask创建接口&#xff1a; 一、安装python 官网下载Download Python | Python.org 二、安装flask 在选择的文件夹路径cmd调用bash安装 pip install Flask三、创建flask应用 # app.py from flask import Flask, request, jsonify app Flask(__name__) app.route(/ech…

Linux服务管理(二)DHCP/FTP服务

DHCP四部曲是指客户机请求IP、服务器响应、客户机选择IP以及服务器确定租约四个步骤的过程。这一系列过程共同构成了DHCP客户机动态获取IP地址的完整流程。下面将详细解读这一过程的每个阶段&#xff1a; 客户机请求IP&#xff1a;也称为DHCPDISCOVER&#xff0c;当一个DHCP客户…

ESXi6.7 update 3主机实现新硬件运行老环境

server 2003 SQL server 2000 SQL SP4 vmware tools 一、适用场景 1、运行多年的老企业&#xff0c;积累的数据量庞大&#xff0c;其中的数据库并不一定都是现在开发的平台或系统&#xff0c;而是已经正在运行&#xff0c;不能停业务的状态。 2、老系统老应用平台&#xf…

IT数据从业人员必读好物——最新发布物开放免费下载!

如今&#xff0c;越来越多的企业开始重视IT在业务中的作用&#xff0c;并寻求通过数字化转型来提升竞争力&#xff0c;且趋向于采用敏捷、灵活的方法来适应快速变化的市场需求。 本月精选发布物&#xff0c;正是为企业的IT管理提供了一个全面的标准化框架&#xff0c;帮助企业系…

如何确保工业展厅设计既专业又吸引?三原则详解!

工业是民族发展的基石&#xff0c;它为我们带来了无数的便利和进步&#xff0c;而为了让更多人了解这个至关重要的产业&#xff0c;以及其背后的技术和产品&#xff0c;许多工业性质的企业都致力于通过互动投影、虚拟现实、全息投影等多媒体技术&#xff0c;来打造独具特色的工…

vue-virtual-scroller-展示大量数据列表-虚拟列表展示优化

安装 -演示 npm i vue-virtual-scrolleryarn add vue-virtual-scrollervue-virtual-scroller 是一个 Vue 组件库,用于高效地渲染大量数据项,通过虚拟滚动来提升性能。它适用于长列表、网格、表格等场景 引入组件 Vue 项目中引入并注册 vue-virtual-scroller 组件。你可以在全…

@金融安全专业人士和风险管理决策者,必读白皮书现开放免费下载!

加快建设金融强国&#xff0c;是中国经济长远发展的战略抉择&#xff0c;更是在经济全球化进程中维护国际金融安全的重要举措&#xff0c;而防控金融风险是建设金融强国的重要保障。 本月最新发布物&#xff0c;聚焦「安全」主题&#xff0c;尤其为金融行业的安全专家&#xff…

『C++成长记』string模拟实现

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ ​ 目录 一、存储结构 二、默认成员函数 &#x1f4d2;2.1构造函数 &#x1f4d2;2.…

尚品汇-(十二)

&#xff08;1&#xff09;数据库表结构 根据以上的需求&#xff0c;以此将SKU关联的数据库表结构设计为如下&#xff1a; base_attr_value&#xff1a;前面学的平台属性值表 我们进行关联&#xff0c;可以从分类导向平台&#xff0c;通过平台过滤商品 &#xff08;2&#xf…

MySQL—统计函数和数学函数以及GROUP BY配合HAVING

合计/统计函数 count -- 演示 mysql 的统计函数的使用 -- 统计一个班级共有多少学生&#xff1f; SELECT COUNT(*) FROM student -- 统计数学成绩大于 90 的学生有多少个&#xff1f; SELECT COUNT(*) FROM student WHERE math > 90 -- 统计总分大于 250 的人数有多少&…

【SpringCloud应用框架】Nacos命名空间、分组和DataID三者关系

第五章 Spring Cloud Alibaba Nacos之命名空间、分组和DataID三者关系 文章目录 一、名词解释三者关系 二、切换不同环境DataID方案Group方案Namespace空间方案 一、名词解释 命名空间&#xff08;Namespace&#xff09; ​用于进行租户粒度的配置隔离。不同的命名空间下&…

GraphRAG

什么是RAG&#xff1f; RAG 是一种自然语言查询方法&#xff0c;用于通过外部知识增强现有的LLM&#xff0c;因此如果问题需要特定知识&#xff0c;问题的答案会更相关。它包括一个检索信息组件&#xff0c;用于从外部源获取附加信息&#xff0c;也称为“基础上下文”&#xf…

pnpm介绍

PNPM 是一个 JavaScript 包管理器&#xff0c;类似于 npm 和 Yarn。它的全称是 "Performant npm"&#xff0c;主要设计目标是优化包的安装和管理过程&#xff0c;以提升速度和效率。PNPM 的主要特点包括&#xff1a; 符号链接&#xff08;Symlink&#xff09;&#x…

AI产品经理发展与规划

今天引用高飞老师的讲课内容&#xff0c;分享一下&#xff0c;何为AI产品经理&#xff1f;这个话题不仅仅希望介绍AI产品经理的工作方式等方面的内容&#xff0c;更多的在于讨论未来产品经理这个行业应该如何发展&#xff1f;行业壁垒在何处&#xff1f;如何应对中年危机&#…