310. Minimum Height Trees LeetCode
来源:互联网 发布:广厦结构设计软件 编辑:程序博客网 时间:2024/04/30 09:43
题意:给出一张图,选一个节点作为根使得这棵树最矮,求所有这样的节点。
题解:有点像拓扑排序的做法,就是从度为1的点一层一层往里面扩展,最后剩下的点就是树根。
class Solution {public: vector<int> findMinHeightTrees(int n, vector<pair<int, int>>& edges) { if(n == 1) return vector<int>{0}; vector<vector<int>> edge; vector<int> vis,d,ans; for(int i = 0; i <= n; i++) { edge.push_back(vector<int>{}); vis.push_back(0); d.push_back(0); } for(int i = 0; i < edges.size(); i++) { int u = edges[i].first; int v = edges[i].second; edge[u].push_back(v); edge[v].push_back(u); d[u]++; d[v]++; } queue<int> q; while(!q.empty()) q.pop(); for(int i = 0; i < n; i++) if(d[i] == 1) q.push(i),vis[i] = 1; while(!q.empty()) { int n = q.size(); ans.clear(); for(int k = 1; k <= n; k++) { int now = q.front(); q.pop(); ans.push_back(now); for(int i = 0; i < edge[now].size(); i++) { int v = edge[now][i]; if(!vis[v]) { d[v]--; if(d[v] == 1) { q.push(v); vis[v] = 1; } } } } } return ans; }};
0 0
- Leetcode 310. Minimum Height Trees
- [leetcode] 310. Minimum Height Trees
- 310. Minimum Height Trees LeetCode
- leetcode 310. Minimum Height Trees
- LeetCode *** 310. Minimum Height Trees
- 【LeetCode】310. Minimum Height Trees
- [leetcode] 310.Minimum Height Trees
- leetcode-310. Minimum Height Trees
- [leetcode] 310. Minimum Height Trees
- 【LeetCode】310. Minimum Height Trees
- LeetCode 310. Minimum Height Trees
- Leetcode 310. Minimum Height Trees
- [LeetCode]310. Minimum Height Trees
- Leetcode: 310.Minimum Height Trees
- 【Leetcode】310. Minimum Height Trees
- LeetCode 310. Minimum Height Trees
- leetcode-310. Minimum Height Trees
- Leetcode 310. Minimum Height Trees
- SQL统计查询(按月份)
- DevExperss中ASPxGridView控件显示内容为空解决方案
- la 4945 free goodies,不会!
- 当你的登录对话框是主对话框时
- Oracle学习笔记(三)
- 310. Minimum Height Trees LeetCode
- 工具类-px与dp互转
- Cache技术
- Angular.watch性能问题和ngInfiniteScroll
- struct和typedefstruct
- mongodb C++驱动VS2012编译
- JS判断密码强度的代码
- [疯狂Java]多线程:进程和线程的概念
- 全栈学习计划-博客开发