LeetCode 133. 克隆图(图的BFS/DFS)

1. 题目

给定无向连通图中一个节点的引用,返回该图的深拷贝(克隆)。图中的每个节点都包含它的值 val(Int) 和其邻居的列表(list[Node])。

class Node {
public:int val;vector<Node*> neighbors;Node() {}Node(int _val, vector<Node*> _neighbors) {val = _val;neighbors = _neighbors;}
};

2. 解题

2.1 DFS

class Solution {Node* visited[101] = {NULL};
public:Node* cloneGraph(Node* node) {if(!node) return NULL;int size = node->neighbors.size();Node *root = new Node(node->val, vector<Node*> {});visited[node->val] = root;for (int i = 0; i < size; i++) {if (!visited[node->neighbors[i]->val])root->neighbors.push_back(cloneGraph(node->neighbors[i]));elseroot->neighbors.push_back(visited[node->neighbors[i]->val]);}return root;}
};

2.2 BFS

class Solution {bool visited[101] = {0};
public:Node* cloneGraph(Node* node) {if(!node) return NULL;unordered_map<int, Node*> m;//新节点值和它自己的指针unordered_map<Node*, vector<int>> nhb;//一个节点对应的邻居的节点值queue<Node*> q;q.push(node);Node *root, *ans;visited[node->val] = 1;int i = -1, n;while(!q.empty()){n = q.front()->neighbors.size();root = new Node(q.front()->val, vector<Node*> {});if(i == -1)ans = root;m[q.front()->val] = root;for(i = 0; i < n; i++){nhb[root].push_back(q.front()->neighbors[i]->val);if(!visited[q.front()->neighbors[i]->val]){q.push(q.front()->neighbors[i]);visited[q.front()->neighbors[i]->val] = 1;}}q.pop();}for(auto it = nhb.begin(); it != nhb.end(); ++it){n = it->second.size();for(i = 0; i < n; i++){it->first->neighbors.push_back(m[it->second[i]]);}}return ans;}
};

在这里插入图片描述

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

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

相关文章

七天搞定java接口自动化测试实战,一文搞定...

前言 无论是自动化测试还是自动化部署&#xff0c;撸码肯定少不了&#xff0c;所以下面的基于java语言的接口自动化测试&#xff0c;要想在业务上实现接口自动化&#xff0c;前提是要有一定的java基础。 如果没有java基础&#xff0c;也没关系。这里小编也为大家提供了一套jav…

Android自动化测试探索

前言 通常来说&#xff0c;我们开发完成产品之后&#xff0c;都是由测试组或者是我们自己点一点&#xff0c;基本上没有问题了就开始上线。但是&#xff0c;随着时间的堆叠&#xff0c;一款产品的功能也越来越多。这时&#xff0c;我们为了保证产品的质量&#xff0c;就需要在…

我整理了100道大厂算法岗面试必考题!

最近&#xff0c;很多小伙伴给我留言去面试被面试官吊打了&#xff0c;尤其是一些去面大厂的朋友&#xff0c;甚至一面都没有过...来&#xff0c;别灰心&#xff0c;我以过往经验告诉你大厂面试的通关秘诀&#xff01;对&#xff0c;就是算法&#xff01;大厂面试必考算法&…

参会邀请 - ISWC2020 | 第十九届国际语义网会议

第十九届国际语义网会议&#xff08;ISWC2020&#xff09;将于11月1日至6日远程召开。国际语义网会议是全球最重要的且最有影响力的国际学术会议&#xff0c;主要聚焦语义网&#xff0c;知识图谱&#xff0c;本体&#xff0c;链接数据等面向互联网的人工智能技术。国际语义网会…

美团配送资金安全治理之对账体系建设

前言 随着美团配送业务的飞速发展&#xff0c;单量已经达到千万级别&#xff0c;同时每天产生的资金额已经超过几千万&#xff0c;清结算系统在保证线上服务稳定可靠的前提下&#xff0c;如何系统化的保障资金安全是非常核心且重要的课题&#xff0c;配送清结算系统经过近3年的…

gcc安装不行的解决办法,需更新apt-get

上面应该更新apt-get 更新之后&#xff0c;重新安装gcc成功

LeetCode 138. 复制带随机指针的链表(哈希 / 深拷贝)

1. 题目 给定一个链表&#xff0c;每个节点包含一个额外增加的随机指针&#xff0c;该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。 《剑指Offer》同题&#xff1a;面试题35. 复杂链表的复制 2. 解题 类似题目&#xff1a;LeetCode 1484. 克隆含随…

论文浅尝 - COLING2020 | 桥接文本和知识的多原型嵌入在少样本关系三元组抽取中的研究...

本文转载自公众号&#xff1a;浙大KG。 论文题目&#xff1a;Bridging Text and Knowledge with Multi-Prototype Embedding for Few-Shot Relational Triple Extraction本文作者&#xff1a;余海阳发表会议&#xff1a;COLING 2020论文链接&#xff1a;https://person.zju.…

惊呆!不用一张图片,却训出个图像识别SOTA?

文 &#xff5c; 橙橙子如果老板派给你一个任务&#xff0c;不使用一张图片&#xff0c;让你训练一个视觉预训练模型&#xff0c;你会不会觉得老板疯了。最近有一篇论文&#xff0c;不仅没用一张真实图片和标注&#xff0c;还训练出个媲美SOTA的效果&#xff0c;甚至超过了MoCo…

LeetCode 797. 所有可能的路径(DFS)

1. 题目 给一个有 n 个结点的有向无环图&#xff0c;找到所有从 0 到 n-1 的路径并输出&#xff08;不要求按顺序&#xff09; 二维数组的第 i 个数组中的单元都表示有向图中 i 号结点所能到达的下一些结点&#xff08;译者注&#xff1a;有向图是有方向的&#xff0c;即规定…

每天数百亿用户行为数据,美团点评怎么实现秒级转化分析?

背景 用户行为分析是数据分析中非常重要的一项内容&#xff0c;在统计活跃用户&#xff0c;分析留存和转化率&#xff0c;改进产品体验、推动用户增长等领域有重要作用。美团点评每天收集的用户行为日志达到数百亿条&#xff0c;如何在海量数据集上实现对用户行为的快速灵活分析…

pycharm插件之SonarLint

pycharm插件之SonarLint pycharm插件之SonarLint 一、插件安装位置 1、在线安装插件 通过File—>Settings—>Plugins进行安装插件&#xff0c;然后只需要重新启动IEDA即可。 2、离线安装插件 通过 Settings > Plugins > Install Plugin from 离线安装&#x…

论文浅尝 - ICLR2020 | You Can Teach an Old Dog New Tricks!关于训练知识图谱嵌入

论文笔记整理&#xff1a;谭亦鸣&#xff0c;东南大学博士生。来源&#xff1a;ICLR2020链接&#xff1a;https://openreview.net/pdf?idBkxSmlBFvrKG embedding&#xff08;KGE&#xff09;模型的目标是学习知识图谱中实体和关系的向量表示。近年来众多的KGE方法被提出&#…

撑起百万亿参数模型想象力!英伟达发布新一代SuperPOD超算,AI算力新巅峰!

周一&#xff0c;黄教主又很淡定的在自家厨房里开完了GTC发布会。众所周知&#xff0c;NLP领域的模型一个比一个大&#xff0c;自从百亿参数的Google T5出来后&#xff0c;大部分AI研究者只能望着手里的蹩脚算力兴叹。如今动辄就是千亿、万亿参数模型&#xff0c;目前比较流行的…

每日优鲜小程序基础组件介绍

每日优鲜小程序基础组件介绍1.基础组件介绍2.基础组件的结构与作用3.基础组件的接入方法初次引入初始化更新与维护基础组件接入1.基础组件介绍 小程序基础组件基于每日优鲜主商城小程序业务实践演变而来。 基础组件的名称为&#xff1a;mini_app_base_module。 基础组件的项…

Redis 高负载下的中断优化

背景 2017年年初以来&#xff0c;随着Redis产品的用户量越来越大&#xff0c;接入服务越来越多&#xff0c;再加上美团点评Memcache和Redis两套缓存融合&#xff0c;Redis服务端的总体请求量从年初最开始日访问量百亿次级别上涨到高峰时段的万亿次级别&#xff0c;给运维和架构…

LeetCode 394. 字符串解码(栈)

1. 题目 给定一个经过编码的字符串&#xff0c;返回它解码后的字符串。 编码规则为: k[encoded_string]&#xff0c;表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。 你可以认为输入字符串总是有效的&#xff1b;输入字符串中没有额外的空格&…

90TB显存!英伟达发布新一代SuperPod超算,AI算力新巅峰!

周一&#xff0c;黄教主又很淡定的在自家厨房里开完了GTC发布会众所周知&#xff0c;NLP领域的模型一个比一个大&#xff0c;自从百亿参数的Google T5出来后&#xff0c;大部分AI研究者只能望着手里的蹩脚算力兴叹。如今动辄就是千亿、万亿参数模型&#xff0c;目前比较流行的V…

VS Code HtmlFindClass 插件介绍

这款插件诞生于工作中&#xff0c;在写大量的前端代码之后&#xff0c;发现有的工作比较重复&#xff0c;浪费时间&#xff0c;于是想能不能通过工具来解决。起初是拿Java写的&#xff0c;但是它不利于推广&#xff0c;因为很多前端同学不掌握Java。以至于是一直我自己在使用。…

论文浅尝 - ACL2020 | 一种用于关系三元组提取的级联二进制标记框架

论文笔记整理&#xff1a;窦春柳&#xff0c;天津大学硕士。链接&#xff1a;https://arxiv.org/pdf/1909.03227.pdf动机首先作者提出了问题&#xff0c;传统的关系抽取是不能很好的解决三元组重叠&#xff0c;如下图。从图中可以发现&#xff0c;传统的关系抽取针对Normal 类型…