精通算法系列-复制图形
来源:互联网 发布:mac关闭icloud drive 编辑:程序博客网 时间:2024/05/17 23:35
原题如下:
// 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 node 0 to both nodes 1 and 2.// Second node is labeled as 1. Connect node 1 to node 2.// Third node is labeled as 2. Connect node 2 to node 2 (itself), thus forming a self-cycle.// Visually, the graph looks like the following:// 1// / \// / \// 0 --- 2// / \// \_//** * Definition for undirected graph. * class UndirectedGraphNode { * int label; * List<UndirectedGraphNode> neighbors; * UndirectedGraphNode(int x) { label = x; neighbors = new ArrayList<UndirectedGraphNode>(); } * }; */
意思就是:给定一个没有方向的图形,你要做的就是复制一个一样的图形
答案如下:
public class Solution { public HashMap<Integer, UndirectedGraphNode> map = new HashMap<Integer, UndirectedGraphNode>(); public UndirectedGraphNode cloneGraph(UndirectedGraphNode node) { if(node == null) return null; if(map.containsKey(node.label)) return map.get(node.label); UndirectedGraphNode newNode = new UndirectedGraphNode(node.label); map.put(newNode.label, newNode); for(UndirectedGraphNode neighbor : node.neighbors) { newNode.neighbors.add(cloneGraph(neighbor)); } return newNode; }}
核心思路:遍历每一个节点,并把当前节点有的再重新添加到新的图形当中
阅读全文
0 0
- 精通算法系列-复制图形
- 精通算法系列-三值更小
- 精通算法系列-BST
- 精通算法系列-二进制手表
- 精通算法系列-最佳买卖股票
- 精通算法系列-二叉树路径
- 精通算法系列-安卓屏幕锁
- 精通算法系列-二叉树问题
- 精通八大排序算法系列:二、堆排序算法
- 精通八大排序算法系列:一、快速排序算法
- 精通八大排序算法系列:二、堆排序算法
- 精通八大排序算法系列:二、堆排序算法
- 图形化界面复制
- 精通八大排序算法系列:一、快速排序算法 ---转csdn
- 精通八大排序算法系列:一之续、快速排序算法的深入分析
- 精通八大排序算法系列:一之续、快速排序算法的深入分析
- 精通八大排序算法系列:一之续、快速排序算法的深入分析
- 精通JavaScript系列目录
- 菜单导航栏总结
- vue踩坑系列——slot
- JS(history,location的使用)返回上一页以及返回上一页并刷新
- 基于Token的身份验证——JWT
- 如何获得select被选中option的value和text和其他属性值
- 精通算法系列-复制图形
- Android中WiFi的使用------WiFimanager
- 共基、共射、共集基本放大电路
- HTML中a标签中href=""的几种用法
- Mysql随机访问记录
- 查Postgresql 数据库、各表占用磁盘大小
- [HTML/CSS]盒子模型,块级元素和行内元素
- Java学习笔记
- 乐观的程序员