当前位置: 首页 > news >正文

力扣(LeetCode)133. 克隆图(C++)

dfs+哈希表+图

先深搜建立所有点,加入哈希表。再遍历哈希表,按照拷贝前后的结点,拷贝边。最后返回某一结点,即为所求。

class Solution {
public:
    unordered_map<Node*,Node*> mp;
    Node* cloneGraph(Node* node) {
        if(!node) return node;
        dfs(node);
        for(auto &[s,d]:mp)
            for(auto &e:s->neighbors)
                d->neighbors.push_back(mp[e]);
        return mp[node];
    }
    void dfs(Node *node) {
        mp[node] = new Node(node->val);
        for(auto &v:node->neighbors)
            if(!mp.count(v)) dfs(v);
    }
};
  1. 时间复杂度 : O ( ∑ i = 0 n m i ) O(\sum_{i=0}^{n} m_i) O(i=0nmi) n n n 是点的数量, m m m 是边的数量,遍历所有点的所有边,时间复杂度 O ( ∑ i = 0 n m i ) O(\sum_{i=0}^{n} m_i) O(i=0nmi)
  2. 空间复杂度 : O ( n ) O(n) O(n) , 哈希表存 n n n 个点的空间复杂度 O ( n ) O(n) O(n)

AC

AC

相关文章:

  • Android kotlin实现Viewpager滑动背景透明效果渐变
  • 用Tinyproxy搭建自己的proxy server
  • 简单入门编写html登录界面
  • [网络工程师]-应用层协议-SNMP
  • 【云原生之kubernetes实战】在k8s环境下部署jpress开源网站
  • HTML+CSS+JS网页设计期末课程大作业 DW个人博客网站制作 web前端开发技术 web课程设计 网页规划与设计
  • SpringBoot_整合PageHelper
  • 【数据结构与算法】一套链表 OJ 带你轻松玩转链表
  • C/C++大学课程信息系统
  • 【网络编程】第三章 网络套接字(TCP协议程序+多进程+多线程+线程池)
  • 基于物联网设计的自反馈深紫外杀菌消毒系统(STM32F407)
  • react路由v6版本NavLink的两个小坑及解决
  • CSDN第11期周赛总结
  • 编程语言介绍
  • 【火灾检测】森林火灾检测系统(带面板)【含GUI Matlab源码 1921期】
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • 【技术性】Search知识
  • angular2 简述
  • Create React App 使用
  • Docker 笔记(2):Dockerfile
  • java8 Stream Pipelines 浅析
  • Laravel Mix运行时关于es2015报错解决方案
  • linux安装openssl、swoole等扩展的具体步骤
  • MySQL-事务管理(基础)
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 分布式熔断降级平台aegis
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 学习笔记:对象,原型和继承(1)
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (4) PIVOT 和 UPIVOT 的使用
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (利用IDEA+Maven)定制属于自己的jar包
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (图)IntelliTrace Tools 跟踪云端程序
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET简谈设计模式之(单件模式)
  • .net实现客户区延伸至至非客户区
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @EnableWebMvc介绍和使用详细demo
  • [1127]图形打印 sdutOJ
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [CSS3备忘] transform animation 等
  • [delphi]保证程序只运行一个实例
  • [IE编程] 如何编程清除IE缓存
  • [IT生活推荐]大家一起来玩游戏喽,来的都进!
  • [javaSE] GUI(Action事件)
  • [linux] git lfs install 安装lfs
  • [Mybatis-Plus笔记] MybatisPlus-03-QueryWrapper条件构造器
  • [MZ test.16]P2 math 乘方e