当前位置:网站首页>310. minimum height tree
310. minimum height tree
2022-06-27 05:55:00 【Mr Gao】
310. Minimum height tree
A tree is an undirected graph , Any two of these vertices are connected by only one path . let me put it another way , Any connected graph without simple loops is a tree .
Give you a tree that contains n Tree of nodes , Marked as 0 To n - 1 . Given number n And one with n - 1 An undirected edge edges list ( Each side is a pair of labels ), among edges[i] = [ai, bi] Represents the node in the tree ai and bi There is an undirected edge between .
You can select any node in the tree as the root . When selecting a node x As the root node , Let the height of the result tree be h . In all possible trees , Tree with minimum height ( namely ,min(h)) go by the name of Minimum height tree .
Please find all Minimum height tree And press In any order Return a list of their root node labels .
Treelike Height It refers to the number of edges on the longest downward path between the root node and the leaf node .
Example 1:
Input :n = 4, edges = [[1,0],[1,2],[1,3]]
Output :[1]
explain : As shown in the figure , When the root is labeled 1 The nodes of , The height of the tree is 1 , This is the only minimum height tree .
Example 2:
Input :n = 6, edges = [[3,0],[3,1],[3,2],[3,4],[5,4]]
Output :[3,4]
/** * Note: The returned array must be malloced, assume caller calls free(). */
int min_h;
int dfs( int** edges, int edgesSize,int now_node,int h,int *r,int *rs){
int i=0;
int maxh=0;
int num=0;
for(i;i<edgesSize;i++){
if(edges[i][0]==now_node&&r[edges[i][1]]==0){
r[edges[i][1]]=1;
int max1= dfs(edges,edgesSize,edges[i][1],h+1,r,rs);
if(max1>maxh){
maxh=max1;
}
r[edges[i][1]]=0;
}
if(edges[i][1]==now_node&&r[edges[i][0]]==0){
r[edges[i][0]]=1;
int max1= dfs(edges,edgesSize,edges[i][0],h+1,r,rs);
if(max1>maxh){
maxh=max1;
}
r[edges[i][0]]=0;
}
}
if(maxh==0){
return h;
}
else{
return maxh;
}
}
int* findMinHeightTrees(int n, int** edges, int edgesSize, int* edgesColSize, int* returnSize){
int r[n];
int rs[n];
int i;
int *re=(int *)malloc(sizeof(int)*n);
for(i=0;i<n;i++){
r[i]=0;
rs[i]=0;
}
int min=1000;
for(i=0;i<n;i++){
if(rs[i]!=0){
if(rs[i]<min){
min=rs[i];
}
continue;
}
r[i]=1;
int h2=dfs(edges,edgesSize,i,1,r,rs);
rs[i]=h2;
if(h2<min){
min=h2;
}
r[i]=0;
}
printf("min %d ",min);
int size=0;
for(i=0;i<n;i++){
printf("%d| ",rs[i]);
if(rs[i]==min){
re[size++]=i;
}
}
* returnSize=size;
return re;
}
边栏推荐
- Mechanical transcoding journal [17] template, STL introduction
- 思维的技术:如何破解工作生活中的两难冲突?
- Go日志-Uber开源库zap使用
- 表单校验 v-model 绑定的变量,校验失效的解决方案
- 【QT小作】使用结构体数据生成读写配置文件代码
- Assembly language - Wang Shuang Chapter 3 notes and experiments
- Discussion on streaming media protocol (MPEG2-TS, RTSP, RTP, RTCP, SDP, RTMP, HLS, HDS, HSS, mpeg-dash)
- Software testing year end summary report template
- NEON优化1:软件性能优化、降功耗怎么搞?
- 【QT小点】实现看门狗功能,检测外部程序是否在运行
猜你喜欢

LeetCode-515. 在每个树行中找最大值

How JQ gets the reciprocal elements

KubeSphere 集群配置 NFS 存储解决方案-收藏版

leetcode299周赛记录

C Primer Plus 第11章_字符串和字符串函数_代码和练习题

Niuke practice 101-c reasoning clown - bit operation + thinking

Two position relay rxmvb2 r251 204 110dc

How to check the frequency of memory and the number of memory slots in CPU-Z?

IAR Systems全面支持芯驰科技9系列芯片

Asp.Net Core6 WebSocket 简单案例
随机推荐
Create a basic WDM driver and use MFC to call the driver
微信小程序刷新当前页面
Senior [Software Test Engineer] learning route and necessary knowledge points
Leetcode99 week race record
Dual position relay dls-34a dc0.5a 220VDC
Zener diode zener diode sod123 package positive and negative distinction
【QT小作】使用结构体数据生成读写配置文件代码
My opinion on test team construction
Program ape learning Tiktok short video production
leetcode298周赛记录
C Primer Plus 第11章_字符串和字符串函数_代码和练习题
Small program of C language practice (consolidate and deepen the understanding of knowledge points)
How win 10 opens the environment variables window
Obtenir le volume du système à travers les plateformes de l'unit é
开门小例子学习十种用例图
Spark's projection
KubeSphere 集群配置 NFS 存储解决方案-收藏版
Neon optimization 1: how to optimize software performance and reduce power consumption?
代码即数据
How to check the frequency of memory and the number of memory slots in CPU-Z?