leetcode-第14周双周赛-1273-删除树节点
Posted 真不知道叫啥好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode-第14周双周赛-1273-删除树节点相关的知识,希望对你有一定的参考价值。
题目描述:
自己的提交:动态规划
class Solution: def deleteTreeNodes(self, nodes: int, parent: List[int], value: List[int]) -> int: dp = [[0, 0]for _ in range(nodes)] p = collections.defaultdict(list) for i, v in enumerate(parent): p[v].append(i) for i in range(nodes - 1, -1, -1): dp[i][0] += value[i] dp[i][1] += 1 for j in p[i]: dp[i][0] += dp[j][0] dp[i][1] += dp[j][1] if dp[i][0] == 0: dp[i][1] = 0 return dp[0][1]
另:dfs:
class Solution: def deleteTreeNodes(self, nodes: int, parent: List[int], value: List[int]) -> int: child = collections.defaultdict(list) for idx, par in enumerate(parent): child[par].append(idx) def get_count_val(i): count, val = 1, value[i] for c in child[i]: tc, tv = get_count_val(c) count += tc val += tv return (count, val) if val else (0, 0) return get_count_val(0)[0]
以上是关于leetcode-第14周双周赛-1273-删除树节点的主要内容,如果未能解决你的问题,请参考以下文章
leetcode-第14周双周赛-1271-十六进制魔术数字
LeetCode第 57 场力扣夜喵双周赛(差分数组单调栈) and 第 251 场力扣周赛(状态压缩动规,树的序列化,树哈希,字典树)
LeetCode 第 55 场双周赛 / 第 247 场周赛
LeetCode 第 58 场力扣夜喵双周赛(动态规划马拉车算法,前后缀处理)/ 第 253 场力扣周赛(贪心,LIS)