Problem: 2673. 使二叉树所有路径值相等的最小代价
文章目录
- 思路
- 复杂度
- Code
思路
👨🏫 灵神题解
复杂度
⏰ 时间复杂度:
O
(
n
)
O(n)
O(n)
🌎 空间复杂度:
O
(
1
)
O(1)
O(1)
Code
class Solution {
public int minIncrements(int n, int[] cost) {
int ans = 0;
for (int i = n / 2; i > 0; i--) { // 从最后一个非叶节点开始算
ans += Math.abs(cost[i * 2 - 1] - cost[i * 2]); // 两个子节点变成一样的
cost[i - 1] += Math.max(cost[i * 2 - 1], cost[i * 2]); // 累加路径和
}
return ans;
}
}