当前位置: 首页 > news >正文

A.每日一题——1339. 分裂二叉树的最大乘积

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

算法原理:

解法:两次DFS

8ms击败80.19%

时间复杂度O(n)

第一次dfs:计算整棵树的元素总和total

第二次dfs:计算子树的元素总和t,分割的另外一棵子树的元素和乘积可表示为 total-t

在遍历子树的同时统计乘积 t*(total-t) 的最大值,先用long类型存下,最后返回的时候再取模转化为int

Java代码:

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { private static final int MOD=1_000_000_007; private long ret=0; private int total; public int maxProduct(TreeNode root) { total=dfs1(root); dfs2(root); return (int)(ret%MOD); } private int dfs1(TreeNode node){ if(node==null) return 0; return node.val+dfs1(node.left)+dfs1(node.right); } private int dfs2(TreeNode node){ if(node==null) return 0; int t=node.val+dfs2(node.left)+dfs2(node.right); ret=Math.max(ret,(long)t*(total-t)); return t; } }
http://www.jsqmd.com/news/226317/

相关文章:

  • 导师严选9个AI论文软件,助本科生轻松搞定毕业论文!
  • switch case 二分搜索风格
  • wpf自定义控件 ToggleButton_Checked事件怎么防止鼠标滚动误触发
  • archlinux 如何调整 笔记本内置屏幕的亮度
  • 阳明交通大学突破:动态视频重建技术实现画质动作双优化
  • 救命神器8个AI论文软件,助你轻松搞定本科毕业论文!
  • 伯克利团队破解AI评测难题:让机器学会自动出题的神奇方法
  • 一键生成AI播客
  • 腾讯优图Youtu-Agent:AI代理实现自动化生成突破
  • 构建个人知识库工具分类与对比
  • 2026必备!继续教育必看!10款一键生成论文工具深度测评
  • 商汤突破:全能AI助手集成搜索识图与自主思考
  • 中药材原料口碑排行榜:哪些药材最受欢迎?
  • 交通仿真软件:Paramics_(6).交通控制策略仿真
  • KAIST团队突破虚拟对话新纪元:让AI头像像真人一样自然互动
  • 亲测好用8个AI论文软件,本科生搞定毕业论文不求人!
  • 亲测好用8个AI论文软件,本科生搞定毕业论文不求人!
  • 清华大学团队突破AI视频理解难题:用“反常识“训练让机器看懂真相
  • 武汉市放飞炬人产业引导基金:将起草 房地产转让工业信托基金 合同草书
  • 剑桥大学最新突破:让AI既聪明又富有创造力的秘诀
  • python中各种数据类型的转换方法
  • 腾讯天美AI团队重新定义语言模型训练:精确还是多样?
  • PX4实战(十一):PX4运动规划模块(flight mode manager)详解
  • leetcode热题括号生成
  • 雷家林(レイ・ジアリン)詩歌集録 その十四(日译版)
  • 让数据类型回归语义:ABAP CDS 的 Type 与 Enum 在 ABAP Cloud 里的实战指南
  • 香港科技大学突破AI画图“作弊“难题:让机器学会诚实创作
  • SSE、长轮询与 WebSocket 连接资源对比及 Spring Boot 配置指南
  • AWS推出AI图像编辑新突破:用说话就能精准移动图片中的物体!
  • 雷家林(レイ・ジアリン)詩歌集録 その十五(日译版)