leetcode_1339. 分裂二叉树的最大乘积

题目链接:1339. 分裂二叉树的最大乘积

DFS两次即可

#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MOD ((int)pow(10, 9) + 7)static void post_order_traversal(struct TreeNode* node)
{if (!node) {return;}post_order_traversal(node->left);post_order_traversal(node->right);if (node->left) {node->val += node->left->val;}if (node->right) {node->val += node->right->val;}
}static void dfs(struct TreeNode* node, const long long sum, long long *ans)
{if (!node) {return;}long long a = node->val;long long b = sum - node->val;*ans = MAX(*ans, (a * b));dfs(node->left, sum, ans);dfs(node->right, sum, ans);
}int maxProduct(struct TreeNode* root){post_order_traversal(root);long long sum = root->val;long long ans = 0;dfs(root, sum, &ans);return (ans % MOD);
}

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

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

相关文章

Linux下GPIO和看门狗应用编程

文章目录 GPIO应用编程看门狗应用编程 GPIO应用编程 应用层操控硬件可以通过操作这些硬件的设备文件来进行,设备文件是各种硬件设备向应用层提供的一个接口,应用层通过对设备文件的I/O操作来操控硬件设备。设备文件通常在/dev/目录下,该目录…

Yolo-Z:改进的YOLOv5用于小目标检测

目录 一、前言 二、背景 三、新思路 四、实验分析 论文地址:2112.11798.pdf (arxiv.org) 一、前言 随着自动驾驶汽车和自动驾驶赛车越来越受欢迎,对更快、更准确的检测器的需求也在增加。 虽然我们的肉眼几乎可以立即提取上下文信息,即…

延迟队列实现方案总结

日常开发中,可能会遇到一些延迟处理的消息任务,例如以下场景 ①订单支付超时未支付 ②考试时间结束试卷自动提交 ③身份证或其他验证信息超时未提交等场景。 ④用户申请退款,一天内没有响应默认自动退款等等。 如何处理这类任务,最…

Spring Security系例—漏洞防御

目录 一、在Maven中使用 1、Spring Boot 和 Maven 2、没有使用 Spring Boot 的 Maven 3、Maven 仓库(Repository) 二、文章系列 ​​​​​​​1、Spring Security漏洞防护—HTTP 安全响应头-CSDN博客 2、Spring Security —漏洞防护—跨站请求伪造…

【CSDN 每日一练 ★☆☆】【数组/数学】加一

【CSDN 每日一练 ★☆☆】【数组/数学】加一 数组 数学 题目 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整…

elasticsearch存储数据压缩

一.前言 elk是流行的日志监控分析平台,但es占用存储空间过大,下面介绍几种压缩方案。 二.方案 1.禁用不需要的特性 不需要分词的字段,禁用text类型,使用keyword.(我们所有字段都是keyword) 2.使用更高…

MAC缓解WebUI提示词反推

当前环境信息: 在mac上安装好stable diffusion后,能做图片生成了之后,遇到一些图片需要做提示词反推,这个时候需要下载一个插件,参考: https://gitcode.net/ranting8323/stable-diffusion-webui-wd14-tagg…

虚拟机构建单体项目及前后端分离项目

引言 在现代化办公环境中,会议是组织沟通、决策和合作的重要方式之一。为了提高会议的效率和质量,许多企业选择部署会议OA系统来实现会议管理的自动化和数字化。本博客将介绍如何部署和优化会议OA系统,并探讨前后端分离的SPA项目在此过程中的…

66 内网安全-域横向批量atschtasksimpacket

目录 演示案例:横向渗透明文传递at&schtasks 案例2-横向渗透明文HASH传递atexec-impacket案例3-横向渗透明文HASH传递批量利用-综合案例5-探针主机域控架构服务操作演示 传递攻击是建立在明文和hash值的一个获取基础上的攻击,也是在内网里面常见协议的攻击&…

python pandas提取正无穷inf与负无穷-inf所在数据行/列

dataframe.replace([np.inf, -np.inf], np.nan,inplaceTrue) # 替换值然后再删除所在行: dataframe.dropna(inplaceTrue)或是删除所在列: dataframe.dropna(axis1,inplaceTrue)示例程序 import numpy as np import pandas as pddataframe.replace([np…

Linux环境下安装ES

更多ElasticSearch教程:点击查看 1. 先新建一个用户(出于安全考虑,Elasticsearch默认不允许以root账号运行。) 创建用户: useradd esuser 设置密码: passwd esuser2. 下载ES安装包并解压到es目录 修改ES…

一道简单的C#面试题

试题: 抽顺序问题:有10位面试者,需要随机抽号面试。 1)总共十个号数,用数组表示; 2)每一位面试者输入1开始抽签,然后得到抽签号,输入2结束抽签; 3&#x…

深度学习02-数据集格式转换

背景: 通常搜集完数据图片后,我们会用labelimg进行图片标注,比较高版本的labelimg支持的标注格式有三种,PascalVOC、YOLO、CreateML,标注的时候可以根据自己的算法模型数据集需求选择相应的格式,当然&…

Linux玩物志:好玩却无用的软件探秘

W...Y的主页 😊 代码仓库分享💕 🍔前言: 我们已经学习了yum指令,可以在Linux中安装一些软件的指令。下面我们就盘点一些可玩性很高但是却没有什么用的软件,在枯燥的学习中增添一丝乐趣! For…

CSS宽度100%和宽度100vw之间有什么不同?

vw和vh分别代表视口宽度和视口高度。 使用width: 100vw代替的区别在于width: 100%,虽然100%将使元素适合所有可用空间,但视口宽度具有特定的度量,在这种情况下,可用屏幕的宽度 。 如果设置样式body { margin: 0 },则1…

2000-2021年上市公司产融结合度量数据

2000-2021年上市公司产融结合度量数据 1、时间:2000-2021年 2、指标:股票代码、年份、是否持有银行股份、持有银行股份比例、是否持有其他金融机构股份、产融结合 3、来源:上市公司年报 4、范围:上市公司 5、样本量&#xff…

gRPC源码剖析-Builder模式

一、Builder模式 1、定义 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的的表示。 2、适用场景 当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许被构造的对象有不同的表示时。 说人话&#xff1a…

java基础篇-环境变量

java基础 编程学习的关键点、重点1.环境变量设置待续 编程学习的关键点、重点 输入输出 Java语言、C语言、Python语言、甚至SQL语言,都需要实战、做大量输入输出等 1.环境变量设置 1.下载jdk安装 jdk官网下载直达链接:https://www.oracle.com/java/te…

Word插入Latex语句并编译为数学公式

WPS不可行,正版word可以(垃圾WPS) 选中Latex语句并按下Alt (此处以后补一张图) 该方法不需要额外安装什么插件哦!

system verilog VSCode Windows 配置简述

system verilog VSCode Windows 配置简述 本文章的目的并非完全在 VSCode 中进行 system verilog 编程,而是以 vivado 为核心,将 VSCode 作为编译器。 配置步骤 安装 ctags choco install universal-ctags如果你没有安装 chocolatey,见 i…