Problem: 2673. 使二叉树所有路径值相等的最小代价
文章目录
思路
复杂度
⏰ 时间复杂度: O ( n ) O(n) O(n)
🌎 空间复杂度: O ( 1 ) O(1) O(1)
Code
Java
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;
}
}