当前位置: 首页 > news >正文

如何做 网站映射手机怎么安装网站程序

如何做 网站映射,手机怎么安装网站程序,指纹锁在什么网站做宣传好,企业服务图片【LetMeFly】310.最小高度树#xff1a;拓扑排序秒了 力扣题目链接#xff1a;https://leetcode.cn/problems/minimum-height-trees/ 树是一个无向图#xff0c;其中任何两个顶点只通过一条路径连接。 换句话说#xff0c;一个任何没有简单环路的连通图都是一棵树。 给你…【LetMeFly】310.最小高度树拓扑排序秒了 力扣题目链接https://leetcode.cn/problems/minimum-height-trees/ 树是一个无向图其中任何两个顶点只通过一条路径连接。 换句话说一个任何没有简单环路的连通图都是一棵树。 给你一棵包含 n 个节点的树标记为 0 到 n - 1 。给定数字 n 和一个有 n - 1 条无向边的 edges 列表每一个边都是一对标签其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间存在一条无向边。 可选择树中任何一个节点作为根。当选择节点 x 作为根节点时设结果树的高度为 h 。在所有可能的树中具有最小高度的树即min(h)被称为 最小高度树 。 请你找到所有的 最小高度树 并按 任意顺序 返回它们的根节点标签列表。 树的 高度 是指根节点和叶子节点之间最长向下路径上边的数量。 示例 1 输入n 4, edges [[1,0],[1,2],[1,3]] 输出[1] 解释如图所示当根是标签为 1 的节点时树的高度是 1 这是唯一的最小高度树。 示例 2 输入n 6, edges [[3,0],[3,1],[3,2],[3,4],[5,4]] 输出[3,4]提示 1 n 2 * 104edges.length n - 10 ai, bi nai ! bi所有 (ai, bi) 互不相同给定的输入 保证 是一棵树并且 不会有重复的边 方法一拓扑排序 根据图论我们知道非空树的中心有一个或两个。 原因小提示 树中最长路的中心有一个或两个。 那么我们来个拓扑排序不就好了 从叶节点开始“扔”每次扔掉所有的叶节点节点。这样就会出现新的叶节点再扔掉。…。一层一层直到某层扔完时剩下一个或两个节点即为答案。 拓扑排序怎么实现 使用一个数组degreedegree[i]表示与节点i相邻的边有几条图论中称其为度。 初始时将所有度为1的节点入队。 每次将这一层的所有节点出队对于出队的节点thisNode它的所有相邻的节点的度减一。若度变成了1则入队新的叶节点get。 时间复杂度 O ( n ) O(n) O(n)空间复杂度 O ( n ) O(n) O(n) AC代码 C class Solution { public:vectorint findMinHeightTrees(int n, vectorvectorint edges) {if (n 1) { // 这里不要忘了要不然degree不为1return {0};}vectorint degree(n);vectorvectorint graph(n);for (vectorint v : edges) {degree[v[0]];degree[v[1]];graph[v[0]].push_back(v[1]);graph[v[1]].push_back(v[0]);}queueint q;for (int i 0; i n; i) {if (degree[i] 1) {q.push(i);}}int remainNode n;while (remainNode 2) {for (int _ q.size(); _ 0; _--) {remainNode--;int thisNode q.front();q.pop();for (int nextNode : graph[thisNode]) {degree[nextNode]--;if (degree[nextNode] 1) {q.push(nextNode);}}}}vectorint ans {q.front()};q.pop();if (q.size()) {ans.push_back(q.front());}return ans;} };Python from typing import Listclass Solution:def findMinHeightTrees(self, n: int, edges: List[List[int]]) - List[int]:if n 1:return [0]degree [0] * ngraph [[] for _ in range(n)]for x, y in edges:degree[x] 1degree[y] 1graph[x].append(y)graph[y].append(x)q [i for i, d in enumerate(degree) if d 1]remainNode nwhile remainNode 2:tempQ []for thisNode in q:remainNode - 1for nextNode in graph[thisNode]:degree[nextNode] - 1if degree[nextNode] 1:tempQ.append(nextNode)q tempQreturn q同步发文于CSDN和我的个人博客原创不易转载经作者同意后请附上原文链接哦~ Tisfyhttps://letmefly.blog.csdn.net/article/details/136790299
http://www.zqtcl.cn/news/245873/

相关文章:

  • 做设计灵感的网站网站网站建设
  • 华强北附近网站建设电商网站建设规划
  • 泰和网站制作长尾词排名优化软件
  • 国外做的好的鲜花网站万网二手已备案域名
  • 那个网站做的系统最好开奖视频网站开发
  • 学设计的网站推荐南京做网站南京乐识专业
  • 企业网站建设调查问卷重庆网站制作外包
  • 要建设一个网站需要什么北京优化网站公司
  • 多语言网站建设方案大同建设网站
  • 测网站打开的速度的网址wordpress 逻辑代码
  • 网站代码开发徐州网站建设青州陈酿
  • 建网站的软件有哪些做网站怎么挣钱赚钱
  • 徐州市建设局招投标网站谷歌网站的主要内容
  • 门户网站建设工作情况汇报花店网站建设课程设计论文
  • 长春绿园网站建设哪里制作企业网站
  • 建设网站计划ppt模板核酸二维码
  • 宁波网络推广制作seo关键词推广公司
  • 东莞市网站推广西安推广公司无网不胜
  • 全国网站建设有实力建筑人才网123
  • 海安网站设计公司网站开发好学嘛
  • 网站建设深圳公司上海贸易公司注册条件
  • 深圳市坪山新区建设局网站给别人做网站去掉版权
  • 怎么做监测网站的浏览量有没有专业做股指的评论网站
  • 济南微信网站开发网上效果代码网站可以下载吗
  • 门户网站的设计常见的管理信息系统有哪些
  • 网站添加悬浮二维码成都游戏网站开发
  • 用jquery做网站百度seo排名规则
  • 免备案手机网站室内设计说明
  • 网站被做站公司贩卖怎样将qq空间建设为个人网站
  • 网站开发有哪几类淮安app开发公司