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

代码随想录算法训练营day41 | 343. 整数拆分,96. 不同的二叉搜索树

目录

343. 整数拆分

96. 不同的二叉搜索树


343. 整数拆分

类型:动态规划

难度:medium

 

思路:

        dp[i]所用的拆分方法至少已经拆分了两次,比如dp[2]=1,小于2,在大于2的数中,最后的2是不会拆的。

 

代码:

// // 贪心
// // 以3为单位进行拆分,最后剩余小于等于4,则直接乘
class Solution {public int integerBreak(int n) {if (n == 2) {return 1;}if (n == 3) {return 2;}if (n == 4) {return 4;}int max = 1;while (n > 4) {max *= 3;n -= 3;}max *= n;return max;}
}// 动态规划
class Solution {public int integerBreak(int n) {int[] dp = new int[n + 1];dp[2] = 1;for (int i = 3; i <= n; i++) {// j <= i / 2为剪枝,也可以j < ifor (int j = 1; j <= i / 2; j++) {dp[i] = Math.max(dp[i], Math.max(j * (i - j), j * dp[i - j]));}}return dp[n];}
}

96. 不同的二叉搜索树

类型:动态规划

难度:medium

 

思路:

        dp[i]指节点个数为i时,有多少种类二叉树。

        dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0] 

        dp[4] = dp[0] * dp[3] + dp[1] * dp[2] + dp[2] * dp[1] + dp[3] * dp[0]

        就是左子树种类乘以右子树种类的累加

代码:

class Solution {public int numTrees(int n) {if (n <= 2) {return n;}int[] dp = new int[n + 1];dp[0] = 1;dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; i++) {for (int j = 0; j < i; j++) {dp[i] += dp[j] * dp[i - 1 - j];}}return dp[n];}
}

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

相关文章:

  • 飞天使-k8sv1.14二进制安装
  • TypeScript封装Axios
  • 指针(一)【C语言进阶版】
  • 回归预测 | MATLAB实现SA-BP模拟退火算法优化BP神经网络多输入单输出回归预测(多指标,多图)
  • springMVC 已解密的登录请求
  • 机器学习赋能乳腺癌预测:如何使用贝叶斯分级进行精确诊断?
  • Java后端开发面试题——框架篇
  • 【新版】系统架构设计师 - 系统测试与维护
  • 使用 useEffect 和 reactStrictMode:优化 React 组件的性能和可靠性
  • 商业智能BI是什么都不明白,如何实现数字化?
  • 【五子棋】
  • docker 01(初识docker)
  • 爬虫逆向实战(十九)--某号站登录
  • linux环境docker安装mysql
  • taro h5 formData上传图片的坑-Required request part ‘file‘ is not present
  • GNU GRUB version 2.06 Minimal Bash-lke line editing is supported 问题修复
  • Embedding 向量生成GPT数据使用相关
  • Jenkins工具系列 —— 配置邮箱 每个job下动态设置临时发送人
  • 华纳云:ubuntu中怎么查看进程占用的端口
  • 【学会动态规划】 最长递增子序列(26)
  • Azure虚拟网络对等互连
  • CTFhub-sql-整数注入
  • 管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——归纳——第三节 归纳论证有效性
  • PaddleRS 1.0.0版本安装
  • 三维重建 PyQt Python MRP 四视图(横断面,冠状面,矢状面,3D)
  • 使用vscode编写插件-php语言
  • 【笔记】Spark3 AQE(Adaptive Query Execution)
  • 【雷达】接收和去噪L波段雷达接收到的信号研究(Matlab代码实现)
  • 【云原生】Docker Cgroups资源控制管理
  • k8s部署prometheus