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

广州做模板网站的公司网站建设公司一站通系统简单

广州做模板网站的公司,网站建设公司一站通系统简单,如何打开网页源代码,网络seo优化服务1 题目:最小高度树 官方标定难度:中 树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,任何一个没有简单环路的连通图都是一棵树。 给你一棵包含 n 个节点的树,标记为 0 到 n - 1 。给定数字 n 和一个…

1 题目:最小高度树

官方标定难度:中

树是一个无向图,其中任何两个顶点只通过一条路径连接。 换句话说,任何一个没有简单环路的连通图都是一棵树。

给你一棵包含 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 ∗ 1 0 4 1 <= n <= 2 * 10^4 1<=n<=2104
edges.length == n - 1
0 <= ai, bi < n
ai != bi
所有 (ai, bi) 互不相同
给定的输入 保证 是一棵树,并且 不会有重复的边

2 solution

先随便找一个顶点作为根节点,dfs 获取每个节点 u 的最大高度 f[u], 和次大高度 g[u] 然后,再遍历一次获取,反向的最大高度 h[u] ,即从父亲节点上面来的最远的点的距离。

代码

class Solution {vector<vector<int>> e;vector<int> f, g, h;int M;void dfs(int u, int p) {for (int v: e[u]) {if (v == p) continue;dfs(v, u);if (f[v] + 1 > f[u]) {g[u] = f[u];f[u] = f[v] + 1;} else if (f[v] + 1 >= g[u]) g[u] = f[v] + 1;}// cout << u << " " << f[u] << " " << g[u] << endl;}void dfs2(int u, int p) {for (int v: e[u]) {if (v == p) continue;if (f[v] + 1 == f[u]) {h[v] = max(h[u], g[u]) + 1;} else {h[v] = max(h[u], f[u]) + 1;}if (M > max(h[v], f[v])) M = max(h[v], f[v]);dfs2(v, u);}//cout << u << " " << h[u] << " " << f[u] << endl;}public:vector<int> findMinHeightTrees(int n, vector<vector<int>> &edges) {f = vector<int>(n);g = vector<int>(n);h = vector<int>(n);e = vector<vector<int>>(n);for (auto edge: edges) {e[edge[0]].push_back(edge[1]);e[edge[1]].push_back(edge[0]);}dfs(0, -1);M = f[0];dfs2(0, -1);vector<int> ans;for (int i = 0; i < n; i++) {if (M == max(h[i], f[i])) ans.push_back(i);}return ans;}
};

结果

在这里插入图片描述

3 进阶

用拓扑排序,依次去掉度为 1 的点,最后一轮留下来的即为最终要求的节点。

class Solution {public:vector<int> findMinHeightTrees(int n, vector<vector<int>> &edges) {if(edges.empty()) return {0};vector<vector<int>> e(n);vector<int> degree(n);for (auto edge: edges) {e[edge[0]].push_back(edge[1]);e[edge[1]].push_back(edge[0]);degree[edge[0]]++;degree[edge[1]]++;}vector<int> stk[2];for (int i = 0; i < n; i++) {if (degree[i] == 1) stk[0].push_back(i);}int i = 0;for (; !stk[i & 1].empty(); i++) {stk[i + 1 & 1].clear();for (int u: stk[i & 1]) {//cout << u;for (int v: e[u]) {if (--degree[v] == 1) stk[i + 1 & 1].push_back(v);}}}return stk[i + 1 & 1];}
};

在这里插入图片描述


文章转载自:

http://tSDLzHto.cnqff.cn
http://PFkbNpRg.cnqff.cn
http://d0We0tmx.cnqff.cn
http://sYpQ2NdE.cnqff.cn
http://Irc5HJzf.cnqff.cn
http://mjsQiWvP.cnqff.cn
http://TATXwYoj.cnqff.cn
http://GFQNjtnw.cnqff.cn
http://vQlcgCoO.cnqff.cn
http://qTMIcxWk.cnqff.cn
http://0DUu6IoD.cnqff.cn
http://8tIWTKR7.cnqff.cn
http://OnifUd2h.cnqff.cn
http://TLjHqhuq.cnqff.cn
http://oOMZps5f.cnqff.cn
http://d5qZgRXq.cnqff.cn
http://pXvPtIdk.cnqff.cn
http://33aI7DyX.cnqff.cn
http://HrfFFNOU.cnqff.cn
http://mwEsgVCm.cnqff.cn
http://LY8JDJ0p.cnqff.cn
http://pLLN2KVw.cnqff.cn
http://e1QmTrQd.cnqff.cn
http://B0ibcXZB.cnqff.cn
http://X2WBGuP8.cnqff.cn
http://JUo8bQVH.cnqff.cn
http://jYDwxrER.cnqff.cn
http://FBBSe2OG.cnqff.cn
http://2e4s1Upc.cnqff.cn
http://TcAKDhRr.cnqff.cn
http://www.dtcms.com/wzjs/687024.html

相关文章:

  • 怎么用电脑做网站深圳城乡和建设局网站首页
  • 长安网站建设公司装修公司排名哪家好的
  • 技术支持 湖州网站建设建设工程信息网重庆
  • 阜阳网站建设电话株洲网络学院
  • 做网站销售药品免费模板样机素材网站
  • 关于动物的网站建设策划书重装电脑后wordpress
  • wordpress description网站seo评测
  • 做网站一般建多大的页面为什么要立刻做网站
  • 购物网站免费模板网站改版域名不变
  • 怎么样做门户网站有没有专业做二手老车的网站
  • 东莞建设工程造价管理网站宁波网站推广规划
  • 低价网站建设怎么样建筑行业新闻资讯
  • 淘客免费交易网站建设企业运营策划
  • 单页网站案例分析网页制作软件html
  • 国外做多媒体展览的网站p2p网站建设后期维护
  • 高密建设局网站做期货主要看哪个网站
  • 电子商务网站的建设与规划书网站开发需要的编程软件有哪些
  • 国外做gif的网站自动做PPT的网站
  • 开发游戏平台优化营商环境条例全文
  • 网站开发的基本知识一个正版ps软件多少钱
  • 公司网站做好了还需郑州建设网站企业定制
  • 上海建设银行网站查询余额seo黑帽技术
  • 网站seo优化课程建设德育网站的意义
  • 枣庄建设路小学网站美食网页设计模板中文
  • 网站服务器的重要性菏泽郓城住房和城乡建设局网站
  • 淘宝客网站模块广告公司怎么做业务
  • 如何在个人电脑用源码做网站江苏天宇建设集团有限公司网站
  • 布吉建设网站免费家装设计网站
  • 做淘宝那样的网站要多少钱网站开发中网页上传和网站发布
  • 免费做网站通栏广告天津先进网站建设指导