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

news/2024/7/20 21:18:22 标签: 深度优先, 算法

题目链接: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.niftyadmin.cn/n/5130295.html

相关文章

jQuery图像查看插件Zoom.js

效果图 图片点击放大,再次点击或者滚动窗口或者按 ESC 键即可恢复原始大小,非常流畅,使用方法也非常简单,引入zoom.js和zoom.css文件之后,对图片添加data-action"zoom"属性即可。 使用方法 1,将…

比较3个结构之间的关系

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,让A中有4个1,B全是0,排列组合,统计迭代次数并排序。 其中有3个结构 3差值结构 迭代次数 4差值结构 迭代次数 31 3-1 0 1 1 23302 1 - - - 5579.4 …

C语言之 结构体,枚举,联合

目录 1.结构体 1.1结构的基础知识 1.2结构的声明 1.3 特殊的声明 1.4 结构的自引用 1.5 结构体变量的定义和初始化 1.6 结构体内存对齐 1.7 修改默认对齐数 1.8 结构体传参 2. 位段 2.1 什么是位段 2.2位段的内存分配 2.3 位段的跨平台问题 3. 枚举 3.1 枚举类型…

使用koa搭建服务器(一)

最近有个需求需要使用到koa搭建服务器并编写接口对数据库进行增删改查,因此写一篇博客记录这段时间的收获。 一、新建koa项目 (一)安装koa及其相关依赖 npm i koa npm i koa-router// 中间件,用于匹配路由 npm i koa-bodyparse…

2023年汉字小达人市级比赛什么时候进行?如何准备市级比赛?

最近很多家长和小朋友咨询六分成长,问2023年第十届汉字小达人的区级初选结果什么时候出来?汉字小达人市级比赛什么时候进行?准备市级比赛该参考哪些资料?如何更高效地准备市级比赛?.... 针对这些问题,六分成…

[AUTOSAR][诊断管理][ECU][$22] 读取相关的数据

文章目录 一、简介$22服务的实际用途是什么?$22服务的应用场景有哪些呢?$22服务的诊断格式如何?常见DID总结请求实例服务响应负响应NRCNRC优先级二、示例代码uds22_read_data_by_ld.c一、简介 22服务作为诊断服务种的基础服务,可以简单理解为就是一个用于读取ECU数据的外部…

2023前端面试整理

1. 介绍一下最近参与的项目,负责那些业务,在开发过程中遇到过问题吗?最后是咋样处理的? 之前负责过大小十几个项目,负责过浙里办的整套上架流程,负责过数据大屏统计,后台管理系统文书生成表单生成等,浙政钉…

添加IDEA到右键打开里面

打开注册表 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell 首先新建IDEA 将第一个值修改为下面这个,这个是右键时候的显示 新建一个字符串,重命名为Icon(一般好像是这个,可能无所谓),然…