博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Minimum Height Trees
阅读量:6068 次
发布时间:2019-06-20

本文共 1403 字,大约阅读时间需要 4 分钟。

1 public class Solution { 2     public List
findMinHeightTrees(int n, int[][] edges) { 3 if (n == 1) { 4 return Collections.singletonList(0); 5 } 6 Map
> nodes = new HashMap<>(); 7 for (int i = 0; i < n; i++) { 8 nodes.put(i, new HashSet<>()); 9 }10 for (int[] edge : edges) {11 nodes.get(edge[0]).add(edge[1]);12 nodes.get(edge[1]).add(edge[0]);13 }14 15 List
leaves = new ArrayList<>();16 for (Integer i : nodes.keySet()) {17 if (nodes.get(i).size() == 1) {18 leaves.add(i);19 }20 }21 22 while (n > 2) {23 n -= leaves.size();24 List
newLeaves = new ArrayList<>();25 for (int leave : leaves) {26 int current = nodes.get(leave).iterator().next();27 nodes.get(current).remove(leave);28 if (nodes.get(current).size() == 1) {29 newLeaves.add(current);30 }31 }32 leaves = newLeaves;33 }34 return leaves;35 }36 }

1. Check boundary case that when n == 1. There is only one node (0)

2. Set can access by iterator.

转载于:https://www.cnblogs.com/shuashuashua/p/5645592.html

你可能感兴趣的文章
LeetCode 总结
查看>>
在Linux 中安装不了程序?教你一招解决!
查看>>
取得汉字拼音首字母的绝妙方法
查看>>
不再以讹传讹 剖析720P 1080i和1080P
查看>>
asp.net服务器控件button先执行js再执行后台的方法
查看>>
Eclipse上GIT插件EGIT使用手册
查看>>
用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树
查看>>
[转]delphi 有授权许可的字符串拷贝函数源码
查看>>
C#正则表达式提取HTML中IMG标签的SRC地址
查看>>
DockPanel的使用
查看>>
HDU 4118 Holiday's Accommodation (树形DP 哎,头脑不清晰,没看懂。。。。)
查看>>
HDU 4638 Group (线段树 | 树状数组 + 离线处理)
查看>>
最佳的线程联网类
查看>>
JQuery 给基本控件的取值,赋值
查看>>
CVPapers论文整理工具-开源
查看>>
使用字符串时要注意...
查看>>
总结出来的一些ASP.NET程序性能优化的注意事项[不断补充]
查看>>
对象合成复用之策略模式
查看>>
步步为营 .NET 设计模式学习笔记 八、State(状态模式)
查看>>
MEF(Managed Extensibility Framework)有选择性地使用扩展组件
查看>>