收集树上所有苹果的最少时间
目录
1. 题目
1.1. 题目核心
给定一棵树,删除任意一个节点后,计算剩余部分的分数,找出能得到最高分的节点数量。
1.2. 分数计算规则
- 删除一个节点后,树会分裂成几个部分
- 分数 = 所有分裂部分的节点数量的乘积
1.3. 示例详解
1.3.1. 示例 1
输入:parents = [-1,2,0,2,0]
树的结构:
0
/ \
2 4
/ \
1 3
逐个删除节点分析:
-
删除节点 0:
分裂成: [2,1,3] 和 [4] 分数 = 3 × 1 = 3
-
删除节点 2:
分裂成: [0,4] 和 [1] 和 [3] 分数 = 2 × 1 × 1 = 2
-
删除节点 4:
分裂成: [0,2,1,3] 分数 = 4
-
删除节点 1 或 3:
分裂成: [0,2,4,3] 或 [0,2,4,1] 分数 = 4
结果:最高分是 4,有 3 个节点(1、3、4)可以得到这个分数。
1.3.2. 示例 2
输入:parents = [-1,2,0]
树的结构:
0
\
2
/
1
删除每个节点的分析:
-
删除节点 0:
分裂成:[2,1] 分数 = 2
-
删除节点 1:
分裂成:[0,2] 分数 = 2
-
删除节点 2:
分裂成:[0] 和 [1] 分数 = 1 × 1 = 1
结果:最高分是 2,有 2 个节点(0、1)可以得到这个分数。
1.4. 关键点
- 对每个节点,需要考虑:
- 父节点连通部分的大小
- 各个子节点连通部分的大小
- 分数就是这些部分大小的乘积
- 统计获得最高分的节点数量