力扣 310. Minimum Height Trees

一、简述
  这道题本质就是求树的中心,我没有能够独立做出这道题。

二、思想
  首先我们证明树的中心一定位于这个有向无环图的某一条最长路径的中点上。
  a) 第一步证明其他任意节点到这条最长路径两端距离的最大值一定大于等于最长路径的中点到这条最长路径两端距离的最大值。这意味着以其他任意节点为根的树的height一定大于最长路径的中点到这条最长路径两端距离的最大值。
  b) 第二步能够证明最长路径的中点到任意节点的距离一定小于等于最长路径的中点到这条最长路径两端距离的最大值。通过简单的反证法,能够证明若存在一个节点到中点的距离大于最长路径的中点到这条最长路径两端距离的最大值,能够形成一条路径其长度大于最长路径的长度,矛盾。
  上面所有的证明都基于任何两个节点间只有一条路径。
  然后我们能够证明不断减去叶子,树的中心位置不变。减去所有的叶子,任意两个新叶子节点间会形成新的路径(最长路径位于这些路径之中),我们知道这些新路径的长度一定小于等于剪枝前最长路径的长度减2。然后我们知道剪枝前的最长路径一定会形成一条路径,其长度为最长路径长度减2。 哦,这就说明了他就是剪枝后的一条最长路径。证毕。

三、代码
  略

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值