系列文章导引
- 系列文章导引
开源项目
本系列所有文章都将会收录到GitHub
中统一收藏与管理,欢迎ISSUE
和Star
。
GitHub传送门:Kiner算法算题记
前言
我们已经学习了红黑树的概念、基本性质、平衡条件、与AVL树的关系,也学习了红黑树的集中失衡情况以及这些失衡情况都要如何进行调整,还通过Typescript
手写了一个支持插入操作的红黑树结构。那么接下来,我们就通过一些相关的算法题来巩固一下这些知识点吧
LeetCode 1339. 分裂二叉树的最大乘积
解题思路
这道题的意思就是让我们在一颗完整的二叉树上砍一刀,使得新生成的两个二叉树的和值的乘积最大。要如何保证乘积最大呢?是不是两个乘数越接近,乘积就越大。那么,我们要先求出整颗二叉树的和,然后取他的中位数。然后拆出来的两颗子树的,他们的各自的和值越接近中位数,最终得出的乘积就会越大