LeetCode 1339. 分裂二叉树的最大乘积(DP)

1. 题目

给你一棵二叉树,它的根为 root 。请你删除 1 条边,使二叉树分裂成两棵子树,且它们子树和的乘积尽可能大。

由于答案可能会很大,请你将结果对 10^9 + 7 取模后再返回。

示例 1:
在这里插入图片描述

输入:root = [1,2,3,4,5,6]
输出:110
解释:删除红色的边,得到 2 棵子树,和分别为 1110 。它们的乘积是 11011*10

示例 2:
在这里插入图片描述

输入:root = [1,null,2,3,4,null,null,5,6]
输出:90
解释:移除红色的边,得到 2 棵子树,和分别是 156 。它们的乘积为 9015*6)示例 3:
输入:root = [2,3,9,10,7,8,6,5,4,11,1]
输出:1025示例 4:
输入:root = [1,1]
输出:1提示:
每棵树最多有 50000 个节点,且至少有 2 个节点。
每个节点的值在 [1, 10000] 之间。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-product-of-splitted-binary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. DP解题

class Solution {
public:int maxProduct(TreeNode* root) {int sum = subsum(root);//求每个节点的包含自己在内及子节点和unsigned long long maxProduct = 1;dfs(root,sum,maxProduct);//遍历树,对每个节点求 val*(sum-val),取最大return int(maxProduct%1000000007);}int subsum(TreeNode* root){if(!root) return 0;int l = subsum(root->left);//自底向上DPint r = subsum(root->right);root->val += l+r;return root->val;}void dfs(TreeNode* root, int& sum, unsigned long long& maxProduct){if(!root || (!root->left && !root->right)) return;unsigned long long product;if(root->left){product = (unsigned long long)root->left->val * (sum-root->left->val);if(product > maxProduct)maxProduct = product;}if(root->right){product = (unsigned long long)root->right->val * (sum-root->right->val);if(product > maxProduct)maxProduct = product;}dfs(root->left,sum,maxProduct);dfs(root->right,sum,maxProduct);}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大规模模型训练tricks集锦

文 | Connolly知乎大规模模型训练其实就是在和计算、存储和通信玩的过程,所以我列一下跟这些相关的文章。1. 大规模模型并行策略先来介绍一下几种经典的并行范式,以及他们对应的经典文章1.1 数据并行(Data parallelism)不同设备执行相同模型,…

Spring Cloud源码分析(二)Ribbon

断断续续看Ribbon的源码差不多也有7-8天了,总算告一段落。本文记录了这些天对源码的阅读过程与一些分析理解,如有不对还请指出。 友情提示:本文较长,请选择一个较为舒适的姿势来阅读 在之前介绍使用Ribbon进行服务消费的时候&…

LeetCode 1340. 跳跃游戏 V(DP)

1. 题目 给你一个整数数组 arr 和一个整数 d 。每一步你可以从下标 i 跳到&#xff1a; i x &#xff0c;其中 i x < arr.length 且 0 < x < d 。i - x &#xff0c;其中 i - x > 0 且 0 < x < d 。 除此以外&#xff0c;你从下标 i 跳到下标 j 需要满足…

论文浅尝 | TKGR with Low-rank and Model-agnostic Representations

笔记整理&#xff1a;李行&#xff0c;天津大学硕士链接&#xff1a;https://arxiv.org/pdf/2204.04783v1.pdf动机现有MKGC方法中的知识转移效率低下&#xff0c;因为它们分别对每个KG进行编码并通过强制对齐的实体共享相同的嵌入来转移知识。亮点本文的亮点主要包括&#xff1…

ICLR’22 最佳脑洞奖提名:《GPT 如何进行布朗运动?》

文 | 付瑶编 | 小轶今天给大家介绍一篇斯坦福大学的 ICLR22 论文。该文在 OpenReview 中获得了8/8/8/8的高分。在写这篇推送之前&#xff0c;小编身边有多位朋友都私下向我推荐过这篇文章。虽然这几位朋友所研究的任务并不相同&#xff0c;却都认为这篇文章“极具启发性&#x…

条件随机场(Conditional Random Field,CRF)

文章目录1. 概率无向图模型1.1 模型定义1.2 概率无向图模型的因子分解2. 条件随机场的定义与形成2.1 条件随机场的定义2.2 条件随机场的参数化形式例题2.3 条件随机场的简化形式2.4 条件随机场的矩阵形式例题3. 条件随机场的概率计算问题3.1 前向-后向算法3.2 概率计算3.3 期望…

Spring Cloud构建微服务架构(七)消息总线

先回顾一下&#xff0c;在之前的Spring Cloud Config的介绍中&#xff0c;我们还留了一个悬念&#xff1a;如何实现对配置信息的实时更新。虽然&#xff0c;我们已经能够通过/refresh接口和Git仓库的Web Hook来实现Git仓库中的内容修改触发应用程序的属性更新。但是&#xff0c…

2022中国最有钱大学排名出炉!北大只能排第三

文 | 大勇源 | 抓码计算机考研4月21日&#xff0c;教育部直属高校、工信部直属高校陆续在其信息公开网公布了2022年部门预算&#xff0c;高绩对各高校2022年预算数据进行了整理&#xff0c;从中可以一窥国内重点高校的经费情况。中国有各类型、各层次高校2000余所&#xff0c;就…

图谱实战 | 百度基于异构互联知识图谱的多模内容创作技术

分享嘉宾&#xff1a;卞东海 百度 高级研发工程师编辑整理&#xff1a;蒋郭鑫 河海大学出品平台&#xff1a;DataFunTalk导读&#xff1a;由于大数据时代的发展&#xff0c;知识呈指数级增长&#xff0c;而知识图谱技术又在近年来逐步火热&#xff0c;因此诞生了利用知识图谱技…

Spring Cloud构建微服务架构(四)分布式配置中心

Spring Cloud Config为服务端和客户端提供了分布式系统的外部化配置支持。配置服务器为各应用的所有环境提供了一个中心化的外部配置。它实现了对服务端和客户端对Spring Environment和PropertySource抽象的映射&#xff0c;所以它除了适用于Spring构建的应用程序&#xff0c;也…

华尔街投资人因股价暴跌起诉阿里巴巴,马云为起诉对象?

文 | 曹小灵知乎www.zhihu.com/question/530087383/answer/2458458738前几天发生了一个比较有意思的事情&#xff0c;直接上图&#xff1a;这新闻把我看乐了。这中国科技公司在美国股价下跌的原因&#xff0c;美国人自己不清楚么。2020年就开始闹&#xff0c;2021年落地的《外国…

Spring Cloud源码分析(一)Eureka

看过之前文章的朋友们&#xff0c;相信已经对Eureka的运行机制已经有了一定的了解。为了更深入的理解它的运作和配置&#xff0c;下面我们结合源码来分别看看服务端和客户端的通信行为是如何实现的。另外写这篇文章&#xff0c;还有一个目的&#xff0c;还是希望鼓励大家能够学…

手把手教你写出令人窒息的烂代码

源 | 机器之心在 GitHub 上有一个新项目&#xff0c;它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写。这些准则将指导你写出最亮眼的烂代码。为了保持与原 GitHub 项目一致的风格&#xff0c;下文没有进行转换。读者们可以以相反的角度来理解所有观点&#x…

LeetCode 85. 最大矩形(DP/单调递增栈,难)

文章目录1. 题目2. 解题2.1 DP2.2 单调递增栈1. 题目 给定一个仅包含 0 和 1 的二维二进制矩阵&#xff0c;找出只包含 1 的最大矩形&#xff0c;并返回其面积。 示例: 输入: [["1","0","1","0","0"],["1",&quo…

图谱实战 | 故障知识图谱技术落地探索:装备制造故障知识图谱构建及其应用案例剖析总结...

故障知识图谱是当前面向装备制造领域的落地重要探索领域&#xff0c;如何通过对设备的运行状态、运行日志进行信息抽取、关系建模&#xff0c;建成可供分析应用的知识库&#xff0c;并支撑故障诊断、维修辅助等应用场景&#xff0c;具有重要意义。鉴于当前还未有系统性的开源相…

聊聊Spring Cloud版本的那些事儿

继续昨天说的计划&#xff0c;解惑一下收到比较多的问题。 有朋友问“为什么在很多文章中&#xff0c;大家引用的Spring版本名字都不一样呢&#xff1f;比如&#xff1a;Angel.SR6&#xff0c;Brixton.SR5等等&#xff0c;它们都有什么区别呢&#xff1f;”&#xff0c;今天我…

小样本学习只是一场学术界自嗨吗

文 | ALme知乎这两年看见很多人&#xff0c;包括我实习的mentor在内&#xff0c;都在批评few-shot learning&#xff0c;觉得是学术界在自high&#xff0c;思考良久&#xff0c;感觉有必要给这个领域正个名&#xff5e;(注意&#xff0c;此答案仅关注few-shot image classifica…

Spring Cloud构建微服务架构(六)高可用服务注册中心

近期因工作原因减缓了更新频率&#xff0c;同时为了把Spring Cloud中文社区搭建起来也费了不少时间&#xff0c;几乎每天都在挤牙膏般的凑时间出来做一些有意义的事。未能按原计划更新博文&#xff0c;在此对持续关注我博客的朋友们深表歉意。 之前在写Spring Cloud系列文章的…

技术动态 | 「可解释知识图谱推理」最新方法综述

转载公众号 | 专知近年来&#xff0c;以深度学习模型为基础的人工智能研究不断取得突破性进展&#xff0c;但其大多具有黑盒性&#xff0c;不 利于人类认知推理过程&#xff0c;导致高性能的复杂算法、模型及系统普遍缺乏决策的透明度和可解释性。在国 防、医疗、网络与信息安全…

ACL'22 | 陈丹琦提出CoFi模型剪枝,加速10倍,精度几乎无损

文 | jxyxiangyu我们都知道&#xff0c;为了让以深度神经网络为基础的模型更快地训练&#xff0c;人们提出了单机多卡、多机多卡等分布式训练的方式&#xff0c;那么&#xff0c;在模型预测推理阶段&#xff0c;有什么方法可以加速推理呢&#xff1f;遗憾的是&#xff0c;并行/…