LeetCode 310. 最小高度树(广度优先遍历)
题目描述
对于一个具有树特征的无向图,我们可选择任何一个节点作为根。图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树。给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的根节点。
格式
该图包含 n 个节点,标记为 0 到 n - 1。给定数字 n 和一个无向边 edges 列表(每一个边都是一对标签)。
你可以假设没有重复的边会出现在 edges 中。由于所有的边都是无向边, [0, 1]和 [1, 0] 是相同的,因此不会同时出现在 edges 里。
思路
详见链接
代码
class Solution:def findMinHeightTrees(self, n:int, edges:List[List[int]])->List[int]:from collections import defaultdictif not edges:return [0]graph = defaultdict(list)for x,y in edges:graph[x].append(y)graph[y].append(x)leaves = [i for i in graph if len(graph[i]) == 1]while n > 2:n -= len(leaves)next_leaves = []for leave in leaves:tmp = graph[leave].pop()graph[tmp].remove(leave)if len(graph[tmp]) == 1:next_leaves.append(tmp)leaves = next_leavesreturn list(leaves)
LeetCode 310. 最小高度树(广度优先遍历)相关推荐
- LeetCode 310. 最小高度树(图 聪明的BFS,从外向内包围)
文章目录 1. 题目 2. 解题 2.1 暴力BFS 2.2 聪明的BFS 1. 题目 对于一个具有树特征的无向图,我们可选择任何一个节点作为根.图因此可以成为树,在所有可能的树中,具有最小高度的树被 ...
- LeetCode 310 最小高度树
题目描述 树是一个无向图,其中任何两个顶点只通过一条路径连接. 换句话说,一个任何没有简单环路的连通图都是一 棵树.给你一棵包含 n 个节点的数,标记为 0 到 n - 1 .给定数字 n 和一个有 ...
- leetcode 310. 最小高度树 【时间击败70.67%】 【内存击败89.04%】
数组替代队列,从超时到击败70%,用tree[0]替代new一个新的ArrayList,上升10% 思想是遍历一遍,删除度为1的节点,答案只可能为1或2 1 public List<Intege ...
- 310. 最小高度树
链接:https://leetcode-cn.com/problems/minimum-height-trees/ 题解:https://leetcode-cn.com/problems/minimu ...
- leetcode 310. Minimum Height Trees | 310. 最小高度树(图的邻接矩阵DFS / 拓扑排序)
题目 https://leetcode.com/problems/minimum-height-trees/ 题解 方法1:图的邻接矩阵 DFS(超时) 我一想,这不就是个图嘛,于是随手敲出一个 DF ...
- 2022-3-20 Leetcode 0402.最小高度树
左右平衡的二叉搜索树是最小的.也就是说树的左右两边的节点个数相当. class Solution {private: TreeNode* dfs(vector<int>&nums, ...
- 310. 最小高度树(Medium)
BFS解法 # 拓扑排序(因为是无向图,所以最中间的节点便是高度最小树的根节点),思路: # 从边缘开始,先找到所有出度为1的节点,然后把所有出度为1的节点进队列,然后不断地bfs, # 最后找到的就 ...
- 二叉搜索树-创建最小高度树(递归)
题意: 给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树. 这里回忆一下二叉搜索树的概念: 对于树中的所有子树都有,左子树上的值都小于根节点的值,右子树上的值 ...
- 【数据结构与算法】之深入解析“最小高度树”的求解思路与算法示例
一.题目要求 树是一个无向图,其中任何两个顶点只通过一条路径连接.换句话说,一个任何没有简单环路的连通图都是一棵树. 给你一棵包含 n 个节点的树,标记为 0 到 n - 1,给定数字 n 和一个有 ...
最新文章
- python值函数名的使用以及闭包,迭代器详解
- leetcode 202. Happy Number
- python可以下载百度文库_百度文库随便下载,解除限制
- 怎样用python批量处理文件夹_python批量处理文件或文件夹
- 为什么虚拟助手的前途一片光明
- Spring组件之一 JDBC Template
- 错误Cannot resolve org.springframework.data:spring-data-redis:2.2.6 RELEASE
- MongoDB干货系列1-定期巡检之Mtools
- Oracle查询锁表
- 邓俊辉 数据结构 图
- linux lzma命令,Ubuntu: 压缩与解压缩LZMA文件
- MacTeX添加.sty文件
- □ 影片名:《樱桃小丸子》(36004) 在线播放
- 妙控鼠标灵敏度太低怎么办
- Unity 骨骼动画
- Mysql、SqlServer、Oracle三大数据库的区别
- 学习巴菲特的正确姿势
- 如果你看见这个舞女是顺时针转,说明你用的是右脑;耶鲁大学耗时5年的研究成果。左脑?右脑?
- Python学习十四:访问列表元素、遍历列表
- 二级域名需要备案吗?
热门文章
- Talking Data副总裁高铎:我们如何赋予大数据生命力
- 【菜鸡学算法】用最笨最直观的方法讨论递归取中值时是不是陷入死循环
- 使用truss、strace或ltrace诊断软件的疑难杂症
- 安卓随机通话记录_几款安卓amp;苹果虚拟来电软件,带你快速逃离尬聊现场,留有情面慰人心扉...
- 设计模式学习每天一个——Decorator模式
- sshpass简介及安装
- 论文笔记--知识表示学习研究进展-2016
- init.x java_详谈jvm--Java中init和clinit的区别
- 富文本编辑器中空格转化为a_文本编辑器题解
- 易混单词 expect VS except