LeetCode 1130. Minimum Cost Tree From Leaf Values

编程入门 行业动态 更新时间:2024-10-25 12:21:47

LeetCode 1130. <a href=https://www.elefans.com/category/jswz/34/1757466.html style=Minimum Cost Tree From Leaf Values"/>

LeetCode 1130. Minimum Cost Tree From Leaf Values

LeetCode 1130

这个题目看起来挺复杂的,读懂这个题目还花了点时间。
给出的这个数组,是中序遍历后挑出所有叶子节点组成的一个数组。

1. 根据题目的要求,每个非叶子节点都有2个子节点。说明这棵树是满二叉树(Full Binary Tree),那么就有特性,如过有n个叶子节点,这棵树总是有n-1个非叶子节点。所以非叶子节点的个数是固定的。那么这个题目可以转换为想办法去找最小非叶子节点值的和问题。

2. 所有的非父节点都是左右子树中最大叶子节点的product。而给出的叶子节点是中序遍历的结果。我们只能使用相邻两个节点去找最小product,而这个结果可以当作一个非叶子节点来用。同时在两个节点中大的这个,作为下一轮的输入。可以重复这个方法一直找到所有的n-1个非叶子节点。

转为代码:

    def mctFromLeafValues(self, arr: List[int]) -> int:nl = len(arr)if nl <= 1: return 0miniIndex = 0product = sys.maxsizefor i in range(nl-1):newp = arr[i] * arr[i+1]if  newp < product:product = newpif arr[i] < arr[i+1]:miniIndex = ielse:miniIndex = i+1arr.pop(miniIndex)return product + self.mctFromLeafValues(arr)

更多推荐

LeetCode 1130. Minimum Cost Tree From Leaf Values

本文发布于:2024-03-08 04:20:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1719819.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Minimum   LeetCode   Cost   Values   Leaf

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!