算法练习笔记(五)— 图
来源:互联网 发布:常青藤软件cad2014 编辑:程序博客网 时间:2024/04/30 07:46
汇编真是世界上最可怕的语言之一
不想说话
---------------------------------------------------------------------------
题目地址:https://leetcode.com/problems/clone-graph/#/description
题目:Clone Graph
描述:
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 node, and ,
as a separator for node label and each neighbor of the node.As an example, consider the serialized graph {0,1,2#1,2#2,2}
.
The graph has a total of three nodes, and therefore contains three parts as separated by #
.
- First node is labeled as
0
. Connect node0
to both nodes1
and2
. - Second node is labeled as
1
. Connect node1
to node2
. - Third node is labeled as
2
. Connect node2
to node2
(itself), thus forming a self-cycle.
Visually, the graph looks like the following:
1 / \ / \ 0 --- 2 / \ \_/
导致很多人(包括我)绕了很大个圈子才绕过来
解答:
/** * Definition for undirected graph. * struct UndirectedGraphNode { * int label; * vector<UndirectedGraphNode *> neighbors; * UndirectedGraphNode(int x) : label(x) {}; * }; */class Solution {public: UndirectedGraphNode *cloneGraph(UndirectedGraphNode *node) { if(node == NULL)return NULL; if(mymap.find(node) == mymap.end()){ //mymap.find(node) == mymap.end(); mymap[node] = new UndirectedGraphNode(node -> label); for(UndirectedGraphNode * h : node -> neighbors){ mymap[node] -> neighbors.push_back(cloneGraph(h)); //遍历 } } return mymap[node]; }private: map<UndirectedGraphNode *, UndirectedGraphNode *> mymap;};
0 0
- 算法练习笔记(五)— 图
- Javascript算法练习(五)
- Java基础算法练习五题——(1)
- Java基础算法练习五题——(2)
- Java基础算法练习五题——(3)
- Java基础算法练习五题——(4)
- 算法练习笔记(十三)——图的克隆
- 算法练习笔记(15)—— 哈希表的练习
- 基本算法练习五
- 算法练习笔记(一)
- 算法练习笔记(二)
- 算法练习笔记(三)— 分治算法
- 算法练习笔记(四)— 分治算法
- 算法导论笔记(五)
- 算法练习 - 五笔编码
- 算法练习笔记(十二)—— 超级洗衣机
- 算法练习笔记(十四)——类树形三角
- 算法练习五 红黑树下 节点删除(转)
- web工程中的web.xml文件的作用
- GPLT L3-005. 垃圾箱分布【最短路Dijkstra】
- 倩倩的test啦啦啦
- Oracle EM配置失败终极解决方案
- GitHub基本使用
- 算法练习笔记(五)— 图
- HDU 4965 Fast Matrix Calculation (矩阵快速幂
- Android打造自己的网络框架----RxJava的基础学习使用3(线程控制 Scheduler)
- iOS 开始GCD的研究(一)
- Mac 下搭建vue开发环境
- 运维狗的自我修养:我的Docker之路
- Android内存分析以及解决方法
- vue利用v-for嵌套输出多层对象,分别输出到个表
- codeforces