Clone Graph [leetcode] dfs和bfs

三菱A800变频器矢量控制实战:从速度控制到位置控制的PLG参数设置全解析 本文深入解析了三菱A800变频器结合FR-A8AP选件板与PLG(脉冲编码器)实现高精度矢量控制的实战应用。详细阐述了从速度控制、转矩控制到位置控制三种高级模式的切换逻辑、核心参数设置及硬件接线要点,帮助工程师充分发挥A800变频器的闭环控制潜力,应对复杂工业自动化场景。 阅读详情

变量unordered_map<UndirectedGraphNode *, UndirectedGraphNode *> cloneMap;

因为会有环,所以需要cloneMap记录旧的节点和新的节点对。

还需要一个visited记录已经访问过的节点,可以和cloneMap合并在一起。


DFS:

在克隆某个Node时,首先放入map中。

之后遍历neighbors。如果neighbors不在map里,即没有访问过,则递归调用cloneGraph函数。

最后返回克隆过的节点。

    UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
        if (node == NULL) return NULL;
        if (cloneMap.find(node) != cloneMap.end()) 
            return cloneMap[node];
        cloneMap[node] = new UndirectedGraphNode(node->label);
        cloneMap[node]->neighbors = vector<UndirectedGraphNode *>();
        for (int i = 0; i < node->neighbors.size(); i++)
        {
            UndirectedGraphNode * curNode = node->neighbors[i];
            UndirectedGraphNode * newNode = cloneGraph(curNode);
            cloneMap[node]->neighbors.push_back(newNode);
        }
        return cloneMap[node];
    }

BFS:

使用一个queue记录要访问的节点。

因为不能在访问queue中节点的时候再创建对应的node==>因为在处理父亲节点的时候需同时创建好其neighbors

所以需要在将不在map中的neighbors(没有访问过的子节点)放入queue的同时创建克隆的节点,并且放入map里。

    UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) {
        if (node == NULL) return NULL;
        vector<UndirectedGraphNode *> queue;
        queue.push_back(node);
        cloneMap[node] = new UndirectedGraphNode(node->label);
        cloneMap[node]->neighbors = vector<UndirectedGraphNode *>();
        
        for (int i = 0; i < queue.size(); i++)
        {
            UndirectedGraphNode * newNode = cloneMap[queue[i]];
            for (int j = 0; j < queue[i]->neighbors.size(); j++)
            {
                UndirectedGraphNode * curNb = queue[i]->neighbors[j];
                if (cloneMap.find(curNb) == cloneMap.end())
                {
                    queue.push_back(curNb);
                    UndirectedGraphNode * newNb = new UndirectedGraphNode(curNb->label);
                    newNb->neighbors = vector<UndirectedGraphNode *>();
                    cloneMap[curNb] = newNb;
                }
                newNode->neighbors.push_back(cloneMap[curNb]);
            }
        }
        return cloneMap[node];
    }


Avellaneda & Stoikov’s market-making strategy 工程化处理 前2篇文章详细介绍了AS存货模型的做市策略,这次对于这些公式里面一些希腊字母的取值是如何计算的,如何做工程化并应用到生产环境中做一些说明。这个里面有一些重要参数:很直观,可以直接取值的有:s = current market mid price (中间价,也就是【最佳卖价+最佳买价】/2)q = quantity of assets in inventory of base asset (也就是买入多少价值的股票数量) 阅读详情

相关推荐

eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】

eNSP无法启动AR报错码40,而且按照eNSP帮助手册排查都没用,我的处理方法【自己存档版】

mizhiakk的博客 8408

leetcode -- Clone Graph -- deep copy问题,dfs,bfs

https://leetcode.com/problems/clone-graph/思路可以有dfs,bfs。参考: http://blog.youkuaiyun.com/shiquxinkong/article/details/37889721这里的意思就是要我们写一个deep copy的函数。这里要注意亮点 对于输入的graph, e.g. {0,1,2#1,2#2,2}, 这里可以看到1和2都不止出现了

xyqzki的专栏 946

VESC电调高级调参指南:电机校准与性能优化实战解析

本文详细解析了VESC电调的高级调参方法,包括电机校准与性能优化实战技巧。从基础参数设置到高级机械参数优化,再到动态性能调优,提供了全面的调参指南。特别针对电机类型、功率设置、电池参数配置等关键环节给出实用建议,帮助用户充分发挥VESC电调的性能潜力。

weixin_30772105的博客 196

BFS和DFS解决LeetCode133. Clone Graph

LeetCode133 Clone Graph

Ace_15的博客 429

代号OneNET02 STM32+ESP8266 WIFI系列-第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级

第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级,这一节主要是实现通过OneNET OTA服务器将需要更新的程序远程下载到STM32单片机,这一节主要是引导程序和应用程序的讲解。

weixin_44862509的博客 1904

MOS管关断时尖峰电压的5种实用抑制方案(附实测数据对比)

本文针对MOS管关断时产生的尖峰电压问题,提供了五种经过实验室实测验证的实用抑制方案。文章从尖峰电压的成因分析入手,详细阐述了优化PCB布局、设计RC缓冲电路、选用TVS二极管钳位、调节驱动电路以及使用磁珠吸收高频振荡等方法的原理、实施步骤与实测数据对比,为硬件工程师解决开关电源和电机驱动中的过压应力与EMI问题提供了系统性的实战指南。

1239

【LeetCode】133. Clone Graph 解题报告(Python & C++)

作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录题目描述题目大意解题方法DFSBFS日期 题目地址:https://leetcode.com/problems/clone-graph/ 题目描述 Given a reference of a node in a connected undirected graph, return...

负雪明烛 4511

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

LeetCode 133. Clone Graph【图,DFS,BFS,哈希表】中等

本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章中,我不仅会讲解多种解题思路及其优化,还会用多种编程语言实现题解,涉及到通用解法时更将归纳总结出相应的算法模板。。

memcpy0的博客 873

Openwork 入门指南:开源 AI 桌面助手快速上手

Openwork是一款开源的AI桌面代理工具,提供类似Claude Cowork的免费替代方案。它支持本地运行,确保隐私安全,并能高效处理文件整理、文档读写等任务。支持多种AI模型,通过MIT许可完全免费。安装简单,仅需运行命令行或下载桌面版,需配置API Key后即可使用。操作直观,支持多步骤规划和权限控制,适合自动化重复工作。目前主要支持macOS,未来将扩展至Windows/Linux。建议从简单任务入手,逐步掌握这一高效的数字助手工具。

3802

通俗易懂的Harris 角点检测

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达Harris 角点检测 认为特征点具有局部差异性。如何描述“特征点具有局部差异性”:以每一个点为中心,取一个窗口,窗口大小为5*5...

3D视觉工坊 1473

dfs bfs java_DFS和BFS讲解及Leetcode刷题小结(1)(JAVA)

DFS(深度优先)与BFS(广度优先)是两种非常重要的算法,要注意的是,这是算法,与其数据结构并无关系,任何数据结构都可以使用这种算法!其中树和图的数据结构使用该算法比较多。这两种算法原理非常好理解,但是他们的应用极其的灵活,而且实现步骤上极其讲究,非常容易编写错误,但又找不到问题的出处,希望这两篇文章可以从原理到实现,从实现到应用完整的讲解DFS与BFS这篇文章为对DFS的整理,文末为Leetc...

weixin_39669163的博客 298

26、特洛伊木马:威胁与防范

本文详细介绍了多种常见的特洛伊木马,包括RegForm、ProMail和远程访问特洛伊木马(RATs),并分析了其工作原理与危害。重点讲解了著名RATs如Back Orifice、SubSeven和The Thing的技术特点,揭示了黑客编写特洛伊木马的常用语言与方法。同时,提供了有效的防范策略,如谨慎获取软件、使用回滚程序、杀毒软件、防火墙及反特洛伊木马程序,并通过流程图展示了防御机制。旨在帮助用户识别威胁并加强系统安全防护。

e3f4g5的博客 88

Leetcode 133. Clone Graph用BFS、DFS两种解法

题目要求:Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors.OJ’s undirected graph serialization: Nodes are labeled uniquely.We use # as a separator for each nod

windylai123的博客 684

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LeetCode 133 Clone Graph (BFS || DFS)

大体题意: 这个题目看了许久 才发现就是一道水题,他就是给你一个无向图,建图的方式都不用你管,他是用vector  保存的! 在给你一个新的点,克隆出这个图来!第一次做leetcode,搞了半天。。 思路: BFS或者DFS都行 只要能遍历一遍所有的点就好了! 这个图有自环, 加个vis判断是否重复访问即可! 因为是克隆图嘛,可以建立一个unordered_map mp; 来一个原

aozil_yang的博客 701

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

leetcode【133】Clone Graph【c++版,DFS递归和非递归,BFS】

问题描述: Given a reference of a node in aconnectedundirected graph. Return adeep copy(clone) of the graph. Each node in the graph contains a val (int) and a list (List[Node]) of its neighbors. c...

fanyuwgy的博客 292

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

[C++]LeetCode: 129 Clone Graph (图的深拷贝 BFS && DFS)

题目: Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. OJ's undirected graph serialization: Nodes are labeled uniquely. We use # as a separator f

cindy_niu的专栏 3102

leetcode 133. Clone Graph的思路与python实现

Givena reference of a node in aconnectedundirected graph, return adeep copy(clone) of the graph. Each node in the graph contains a val (int) and a list (List[Node]) of its neighbors. Example:...

qq_35175413的博客 322

Leetcode-133. Clone Graph 克隆图 (DFS,BFS)

题目 给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆)。 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[Node])。 链接:https://leetcode.com/problems/clone-graph/ Given a reference of a node in a connected undirected graph. Return a deep copy (clone) of the graph. Each node in the graph c

JamieLuo的博客 316

Clone Graph leetcode java(DFS and BFS 基础)

题目: Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. OJ's undirected graph serialization: Nodes are labeled uniquely. We use # as a ...

weixin_33887443的博客 146

[LintCode/LeetCode] Clone Graph [BFS/DFS]

Problem Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. We use # as a separator for each node, and , as a separator for no...

weixin_34232363的博客 70

【重点!DFS/记忆化递归 + BFS】LeetCode 133. Clone Graph

LeetCode 133. Clone Graph Solution1: DFS/记忆化递归,参考网址:http://www.cnblogs.com/grandyang/p/4267628.html 真是一道记忆化递归的好题啊~ /** * Definition for undirected graph. * struct UndirectedGraphNode { * in...

Allenlzcoder的博客 396

LeetCode 133. Clone Graph | DFS BFS | Python C++

重点:避免重复copy class Solution { public: UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { unordered_map&lt;UndirectedGraphNode*, UndirectedGraphNode*&gt; t; return clone(...

real_lisa的博客 158

[LeetCode] 133. Clone Graph_ Medium tag: BFS, DFS

Clone an undirected graph. Each node in the graph contains alabeland a list of itsneighbors. OJ's undirected graph serialization: Nodes are labeled uniquely. We use#as a separator for each...

weixin_30616969的博客 93

LeetCode 133. Clone Graph 题解

本题是图的基本操作,考察深拷贝的实现。使用哈希表记录映射关系DFS 或 BFS 遍历图避免重复创建节点。

cannonjinx的博客 1221

题目回顾:Clone Graph 是什么题

Clone Graph 是什么题?LeetCode 133:给定一个无向连通图中的某个节点引用,每个节点有一个整数值 val 和一个邻居列表 neighbors,要求返回整张图的深拷贝(克隆图),返回值是「克隆后图中对应起始节点」的指针。

六六哥的博客 267
上一篇: Sort List[leetcode] 由归并排序的递归和循环,到本题的两种解法
下一篇: Gas Station [leetcode] 的两种解法
圆形毕露
博客等级 码龄17年 20粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值