Leetcode—1339. 分裂二叉树的最大乘积【中等】

2025每日刷题(234)

Leetcode---1339. 分裂二叉树的最大乘积

dfs实现代码

go 复制代码
/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func maxProduct(root *TreeNode) int {
    var sum func(root *TreeNode) int
    sum = func(root *TreeNode) int {
        if(root == nil) {
            return 0
        }
        return root.Val + sum(root.Left) + sum(root.Right)
    }
    s := sum(root)

    const mod = 1e9 + 7
    var ans int
    var dfs func(root *TreeNode) int
    dfs = func(root *TreeNode) int {
        if(root == nil) {
            return 0
        }
        t := root.Val + dfs(root.Left) + dfs(root.Right)
        if(t < s) {
            ans = max(ans, t * (s - t))
        }
        return t
    }
    dfs(root)
    ans %= mod
    return ans
}

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
菜鸡爱玩2 小时前
线性代数矩阵相乘
线性代数·算法·矩阵
devilnumber6 小时前
Java 递归算法 详解 + 核心要点 + 实战运用 + 避坑指南
java·开发语言·算法
独泪了无痕6 小时前
MyBatis魔法堂:结果集映射
后端·mybatis
copyer_xyf7 小时前
LangChain 调用 LLM
后端·python·agent
copyer_xyf7 小时前
Prompt 组织管理
后端·python·agent
asdfg12589637 小时前
JavaBean是什么?怎么理解?有什么用途?
java·开发语言
dsyyyyy11018 小时前
JavaScript变量
开发语言·javascript·ecmascript
‎ദ്ദിᵔ.˛.ᵔ₎8 小时前
双指针、滑动窗口、前缀和、二分查找 算法
算法
顾北顾8 小时前
多头注意力机制
人工智能·深度学习·算法
H178535090968 小时前
SolidWorks_基于草图的实体特征20_特征错误排查
算法·3d建模·solidworks