博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
力扣(LeetCode)310
阅读量:6913 次
发布时间:2019-06-27

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

题目地址:

题目描述:
对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。

格式

该图包含 n 个节点,标记为 0 到 n - 1。给定数字 n 和一个无向边 edges 列表(每一个边都是一对标签)。

你可以假设没有重复的边会出现在 edges 中。由于所有的边都是无向边, [0, 1]和 [1, 0] 是相同的,因此不会同时出现在 edges 里。

解答:

这一题就是求最短路径,不过求的是每一个点到任意一点的最短路径。
我们可以使用弗洛伊德算法来求解。可惜的是该算法的复杂度是O(N三次方)。
不过还有别的方法来求最短路径,宽度优先搜索,对于权值相同的图,可以用宽度优先搜索来求解某一点到
任意一点的最短路径。宽度优先是O(N)的复杂度。求解N个点的,于是就可以把复杂度变为O(N二次方)。
注意:下面的代码是隐含使用宽度优先搜索,没有使用队列。
java ac代码:

class Solution {    public List
findMinHeightTrees(int n, int[][] edges) { int[][] matrix = new int[n][n]; int max = Integer.MAX_VALUE; for(int i = 0;i < n;i++) for(int j = 0;j < n;j++) matrix[i][j] = max; for(int i = 0;i < edges.length;i++){ int begin = edges[i][0]; int end = edges[i][1]; matrix[begin][end] = 1; matrix[end][begin] = 1; for(int j = 0;j < n;j++) if(matrix[begin][j] == max&&matrix[end][j] != max) matrix[begin][j] = matrix[j][begin] = 1+matrix[end][j]; else if(matrix[end][j] == max&&matrix[begin][j] != max) matrix[end][j] = matrix[j][end] = 1+matrix[begin][j]; } for(int i = 0;i < n;i++) matrix[i][i] = 0; HashMap
map = new HashMap(1<<10); int min = max; for(int i = 0;i < n;i++){ int temp = -1; for(int j = 0;j < n;j++) temp = Math.max(temp,matrix[i][j]); map.put(i,temp); min = Math.min(temp,min); } List
ans = new ArrayList(n); for(Map.Entry
entry:map.entrySet()) if(entry.getValue() == min)ans.add(entry.getKey()); return ans; } }

转载地址:http://blicl.baihongyu.com/

你可能感兴趣的文章
Android开发 - 更"聪明"的申请权限方式
查看>>
SVN配置安装
查看>>
linux系统及特性简单介绍
查看>>
linux基础命令 grep
查看>>
CNCF启动K8s软件一致性项目,Rancher入选全球首批K8s认证平台
查看>>
制造业信息化到底需要的是什么?
查看>>
近期用到的linux命令
查看>>
用户和组的的权限
查看>>
下拉框
查看>>
Linux JDK安装及环境变量配置
查看>>
十一月个人考核
查看>>
2-3-运维必备核心技能-nginx配置文件全面讲解
查看>>
对Docker了解多少?10分钟带你从入门操作到实战上手
查看>>
SCI《科学引文索引》
查看>>
老男孩Python自动化开发12期完整版(含作业代码课件)
查看>>
实现Bootstrp的Switch效果
查看>>
postgresql中 from dual 报错的解决方案
查看>>
day33 Hibernate 一对一,检索,hql,离线(criteria),c3p0,隔离,锁
查看>>
Python模拟登录的几种方法
查看>>
五一劳动节专访:24小时劳模—VIKI-AI语音智能机器人
查看>>