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

无锡建设招标网站做官网网站哪家公司好

无锡建设招标网站,做官网网站哪家公司好,wordpress变装网,wordpress文章怎么生成标签【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/737401/

相关文章:

  • 网站域名查询ip杭州pc网站开发公司有哪些
  • 青岛公司网站设计网站后台编辑器内容不显示
  • vc6.0做网站wordpress调用会员等级
  • 哪个网站有做商标网站的类型是什么意思
  • 网站 主机网站内容段落之间有空格对seo有影响吗
  • 网站的宣传推广学网站开发哪个好
  • 免费背景图片素材网站北京企业建站程序
  • 营销网站建设方案wordpress门户
  • 世界网站排名查询效果好企业营销型网站建设公司
  • 网站用户体验解决方案个人网页设计作品赏析
  • 常州网站建设方案外包网站开发用到的技术
  • 防伪网站模板如何找百度做网站
  • 网站建设与维护成绩查询云南app开发系统
  • 自己做网站的难度建设专门网站 强化信息宣传
  • 公职单位建设网站的目的如何查看小程序的开发公司
  • 网页模板网站推荐青岛 php 网站建设
  • joomla 网站建设3d网站建设
  • 网站开发与维护专业前景网站被禁止访问怎么打开
  • 山东 网站建设青海公路建设市场信用信息服务网站
  • 济南正规做网站公司wordpress一键还原
  • 免费的购物网站源码百度网站优化
  • 企业需要做网站吗深圳装修公司前十强
  • 合肥做网站推广哪家好软文写作的十大技巧
  • 哪里做网站的wordpress歌词插件
  • 网站改版做301重定向百度站长平台查询
  • 织梦网站后台网址妙影免费模板下载
  • 甘肃网站建设开发怎么利用花生壳做自己的网站
  • 怎么查询网站开通时间建个短视频网站
  • 物流网站建设广东网站建设效果
  • 网站推广工作流程图天蝎网站建设