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

LeetCode:96.不同的二叉搜索树

跟着carl学算法,本系列博客仅做个人记录,建议大家都去看carl本人的博客,写的真的很好的!
代码随想录

LeetCode:96.不同的二叉搜索树
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。
示例 1:
在这里插入图片描述输入:n = 3
输出:5
示例 2:
输入:n = 1
输出:1

  • n = 3为例,dp[3] = dp[2] * dp[0] + dp[1] * dp[1] + dp[0] * dp[2],三个结点的二叉排序树的种类 = 左子树为两个结点的种类 * 右子树为0个结点的种类 + 左子树为1个结点的种类 + 右子树为1个结点的种类 + 左子树为0个结点的种类 * 右子树为2个结点的种类
  • 递推公式:dp[i] += dp[j - 1] * dp[i - j]j作为头节点,j - 1作为左子树的结点个数,i - j作为右子树的结点个数
	public int numTrees(int n) {int[] dp = new int[n + 1];dp[0] = 1;for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) {dp[i] += dp[j - 1] * dp[i - j];}}return dp[n];}
http://www.lryc.cn/news/528540.html

相关文章:

  • 基于Springboot的智能学习平台系统【附源码】
  • DeepSeek助力学术文献搜索!
  • 阿里:基于路由和规划的多agent系统
  • @RestControllerAdvice 的作用
  • k均值聚类将数据分成多个簇
  • 书生大模型实战营2
  • Excel 技巧21 - Excel中整理美化数据实例,Ctrl+T 超级表格(★★★)
  • 前端——js高级25.1.27
  • 学习数据结构(4)顺序表+单链表
  • GIS 中的 SQLAlchemy:空间数据与数据库之间的桥梁
  • python:斐索实验(Fizeau experiment)
  • MySQL查询优化(三):深度解读 MySQL客户端和服务端协议
  • vue3相关知识点
  • 基于springboot+vue的流浪动物救助系统的设计与实现
  • MySQL(单表访问)
  • UE5.3 C++ CDO的初步理解
  • SpringBoot 中的测试jar包knife4j(实现效果非常简单)
  • Java Web 开发基础介绍
  • Android Studio:视图绑定的岁月变迁(2/100)
  • LabVIEW春节快乐
  • rewrite规则
  • Android车机DIY开发之学习篇(七)NDK交叉工具构建
  • 【初/高中生讲机器学习】0. 本专栏 “食用” 指南——写在一周年之际⭐
  • 虚幻基础11:坐标计算旋转计算
  • Rust:Rhai脚本编程示例
  • 关于el-table翻页后序号列递增的组件封装
  • 【深度学习】softmax回归
  • 设计模式-建造者模式、原型模式
  • 【Redis】List 类型的介绍和常用命令
  • 三个不推荐使用的线程池