楼主: FightOn
跳转到指定楼层
上一主题 下一主题
收起左侧

狗狗 昂赛

🔗
bdhmwz 2018-5-1 10:25:01 | 只看该作者
全局:
最后一题,因为给定的是树,所以可以充分利用这个结构,首先求出以每个节点为根形成的子树中的所有节点的个数
然后选定根节点,计算从根节点到所有其他节点的总距离,然后深搜向下走,每走一步,可以计算出来总距离变化了多少,找到这个最小值就可以了
这个方法要对整棵树遍历两遍(或三遍,看实现),时间复杂度应该就是O(n)的,理论上没有更好的解法了吧
回复

使用道具 举报

🔗
devilnut 2018-5-1 10:35:30 | 只看该作者
全局:
byrlhb 发表于 2018-5-1 09:30
仔细想一下,第五题其实就是leetcode里面那个求树的depth最小的根那个题

你是个天才
回复

使用道具 举报

🔗
wtcupup 2018-5-1 10:51:35 | 只看该作者
全局:
byrlhb 发表于 2018-5-1 09:30
仔细想一下,第五题其实就是leetcode里面那个求树的depth最小的根那个题

求具体题号?
回复

使用道具 举报

🔗
princever 2018-5-1 11:15:55 | 只看该作者
全局:
第二题能讲的详细点吗
回复

使用道具 举报

🔗
hyliu0000 2018-5-1 12:38:05 | 只看该作者
全局:
楼主你好, 第一题的第二问还是不太明白什么意思。。 第二题能举个例子吗?
回复

使用道具 举报

🔗
huizijing 2018-5-1 15:18:08 | 只看该作者
全局:
对于第五题, 我的想法是, 对于一棵树, 任意两个点有唯一的路径, 那么对树进行一次遍历可以得到任意两个点之间的距离, 这样就得到了一个n*n的矩阵, 然后从根节点和根节点 的两个子节点分别计算出距离然后, 如果根节点的距离和比左右的都小,之间返回答案, 然后分别计算左右两个节点的和, 朝小的分支递归下去, 时间复杂度为n*log(n)
回复

使用道具 举报

🔗
huizijing 2018-5-1 15:20:07 | 只看该作者
全局:

对于第五题, 我的想法是, 对于一棵树, 任意两个点有唯一的路径, 那么对树进行一次遍历可以得到任意两个点之间的距离, 这样就得到了一个n*n的矩阵, 然后从根节点和根节点 的两个子节点分别计算出距离然后, 如果根节点的距离和比左右的都小,直接返回答案, 否者分别计算左右两个节点的和, 朝小的分支递归下去, 时间复杂度为n*log(n)。
我这里写的是二叉树, 实际适用于n叉树,
回复

使用道具 举报

🔗
小猫仙 2018-5-2 00:04:49 | 只看该作者
全局:
第二题 LC809
第五题 LC310

评分

参与人数 1大米 +3 收起 理由
huaye + 3 给你点个赞!

查看全部评分

回复

使用道具 举报

🔗
cexq 2018-5-2 02:33:49 | 只看该作者
全局:
求到其他所有点平均距离最小的点? 和LC310好像不一样。。
回复

使用道具 举报

🔗
xietianyi 2018-5-4 16:51:22 | 只看该作者
全局:
第五题什么叫平均距离最小? 树严格来说是有向的么不是?不能从child 到parentroot;那这个无向图是什么意思?

补充内容 (2018-5-4 16:55):

啊!忽视我,眼瞎看错。这个应该是310 了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表