LeetCode *** 310. Minimum Height Trees
来源:互联网 发布:免费b2b网站群发软件 编辑:程序博客网 时间:2024/04/30 14:46
题目:
For a undirected graph with tree characteristics, we can choose any node as the root. The result graph is then a rooted tree. Among all possible rooted trees, those with minimum height are called minimum height trees (MHTs). Given such a graph, write a function to find all the MHTs and return a list of their root labels.
Format
The graph contains n
nodes which are labeled from 0
to n - 1
. You will be given the number n
and a list of undirectededges
(each edge is a pair of labels).
You can assume that no duplicate edges will appear in edges
. Since all edges are undirected,[0, 1]
is the same as [1, 0]
and thus will not appear together inedges
.
Example 1:
Given n = 4
, edges = [[1, 0], [1, 2], [1, 3]]
0 | 1 / \ 2 3
return [1]
Example 2:
Given n = 6
, edges = [[0, 3], [1, 3], [2, 3], [4, 3], [5, 4]]
0 1 2 \ | / 3 | 4 | 5
return [3, 4]
Hint:
Show Hint- How many MHTs can a graph have at most?
分析:
。。
代码:
class Solution {public: vector<int> findMinHeightTrees(int n, vector<pair<int, int>>& edges) { vector<set<int>> record(n); for(auto edge:edges){ record[edge.first].insert(edge.second); record[edge.second].insert(edge.first); } queue<int> que1; queue<int> que2; for(int i=0;i<n;++i) if(record[i].size()<=1)que1.push(i); if(n>2){ while(!que1.empty()){ int t=que1.front(); que1.pop(); n--; set<int>::iterator it=record[t].begin(); while(it!=record[t].end()){ record[*it].erase(t); if(record[*it].size()==1)que2.push(*it); it++; } if(n>2&&que1.empty()){ que1.swap(que2); } } que1.swap(que2); } vector<int> res; while(!que1.empty()){ res.push_back(que1.front()); que1.pop(); } return res; }};
- 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
- Google 更新自己的APP 链接
- 堆和栈的区别
- java中的IO流
- C#自动添加using引用命名空间
- 相当无聊之Delphi截取字符串123-456-7,得到123,456,7
- LeetCode *** 310. Minimum Height Trees
- 微信支付:curl出错,错误码:60
- Struts2中输入效验
- mp4 box
- MySQL单表操作
- 根据基准时间的毫秒数获取现在的时间
- shell学习笔记,tr
- 刚解决了一个matlab不报错也无法运行m文件的问题
- ubuntu命令大全