| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> LeetCode 1373 Maximum Sum BST in Binary Tree (DFS DP 推荐) -> 正文阅读 |
|
[数据结构与算法]LeetCode 1373 Maximum Sum BST in Binary Tree (DFS DP 推荐) |
Given a?binary tree? Assume a BST is defined as follows:
Example 1: ? Input: root = [1,4,3,2,4,2,5,null,null,null,null,null,null,4,6] Output: 20 Explanation: Maximum sum in a valid Binary search tree is obtained in root node with key equal to 3. Example 2: ? Input: root = [4,3,null,1,2] Output: 2 Explanation: Maximum sum in a valid Binary search tree is obtained in a single root node with key equal to 2. Example 3: Input: root = [-4,-2,-5] Output: 0 Explanation: All values are negatives. Return an empty BST. Example 4: Input: root = [2,1,3] Output: 6 Example 5: Input: root = [5,4,8,3,null,6,3] Output: 7 Constraints:
题目链接:https://leetcode.com/problems/maximum-sum-bst-in-binary-tree/ 题目大意:给一颗二叉树,求子树和最大的二叉查找子树的子树和 题目分析:首先要知道如何根据子树信息判断当前树是不是二叉查找树,子树根大于左子树的最大值且小于右子树的最小值,且左右子树都为二叉查找树,于是递归思路很清楚,每次需要返回当前子树的最大最小值和根判断即可,注意空子树可以用一个常量定义(空子树也属于二叉查找树) 6ms,时间击败87.6%
可以发现,如果某个子树不是二叉查找树,那么其直系父代肯定都不是,因此可以直接通过返回值来判断子树是不是二叉查找树,如果不满足条件直接返回null 5ms,时间击败99.04%
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 17:36:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |