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

leetcode 823 带因子的二叉树

用动态规划

如果两个节点值不同,要乘2,因为两个节点可以互换位置

dp[i] = dp[left] * dp[right] * 2

如果相同

dp[i] = dp[left] * dp[right]

class Solution {public int numFactoredBinaryTrees(int[] arr) {Arrays.sort(arr);int n = arr.length;long[] dp = new long[n];long res = 0, mod = 1000000007;for (int i = 0; i < n; i++) {dp[i] = 1;for (int left = 0, right = i - 1; left <= right; left++) {while (right >= left && (long) arr[left] * arr[right] > arr[i]) {right--;}if (right >= left && (long) arr[left] * arr[right] == arr[i]) {if (right != left) {dp[i] = (dp[i] + dp[left] * dp[right] * 2) % mod;} else {dp[i] = (dp[i] + dp[left] * dp[right]) % mod;}}}res = (res + dp[i]) % mod;}return (int) res;}
}

http://www.lryc.cn/news/149627.html

相关文章:

  • 钉钉消息已读、未读咋实现的嘞?
  • Java 读取TIFF JPEG GIF PNG PDF
  • 研磨设计模式day14模板方法模式
  • 7 集群基本测试
  • chrono学习(一)
  • 后端面试话术集锦第 十 篇:springMVC面试话术
  • 基于Django 框架搭建的机器学习在线平台源代码+数据库,实现KNN、ID3、C4.5、SVM、朴素贝叶斯、BP神经网络等算法及流程管理
  • 大数据组件-Flume集群环境搭建
  • 想系列服务迁移专有云效实操
  • 2020 牛客多校第三场 C Operation Love (叉积判断顺逆时针)
  • 基于OFDM的水下图像传输通信系统matlab仿真
  • Docsify + Gitalk详细配置过程讲解
  • React中的setState的执行机制
  • 2023最新任务悬赏平台源码uniapp+Thinkphp新款悬赏任务地推拉新充场游戏试玩源码众人帮威客兼职任务帮任务发布分销机
  • 微服务事务管理(Dubbo)
  • Springboot整合ClickHouse
  • 【材料整理】-- Python、Matlab中常用调试代码,持续更新!
  • 什么是同源策略(same-origin policy)?它对AJAX有什么影响?
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
  • CSC2121A
  • 高级进程编程-系统调用-创建守护进程
  • Redis之发布订阅
  • 交换机 路由器的常见指令
  • Matlab 基本教程
  • 现浇钢筋混泥土楼板施工岗前安全VR实训更安全高效
  • ARDUINO STM32 SSD1306
  • 临时抱佛脚
  • 城市内涝积水监测预警系统 yolov8
  • 数据库备份与恢复
  • ssm+vue高校实验室管理系统源码和论文