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

代码随想录 96. 不同的二叉搜索树

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

解题思路
本题首先得找到规律,通过推演可以发现存在递推关系,用dp[i]表示数字i可以表示成dp[i]种搜索二叉树,如dp[3]=dp[0]*dp[2] + dp[1]*dp[1] + dp[2]dp[0]. 初始化dp[0]=1,因为空树是搜索二叉树,初始化dp[1]=1.

代码实现

class Solution {
public:
    int numTrees(int n) {
        vector<int> dp(n+1, 0);
        dp[0] = 1;
        dp[1] = 1;
        for (int i = 2; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                dp[i] += dp[j-1] * dp[i-j];
            }
        }
        return dp[n];
    }
};

相关文章:

  • el-table 表格多选(后端接口搜索分页)实现已选中的记忆功能。实现表格数据和已选数据(前端分页)动态同步更新。
  • 结合ColorUI组件开发微信小程序
  • 公有云迁移研究——AWS Route53
  • el-table全部选择和全部取消
  • 源码安装git
  • 蓝牙物联网对接技术难点有哪些?
  • 【clickhouse】ck远程访问另一个ck
  • SpringDataJPA基础
  • 管理空闲存储空间
  • No suitable driver found for jdbc:mysql://localhost:3306(2023/12/7更新)
  • GO设计模式——12、外观模式(结构型)
  • 【Go语言分析 select case 】
  • 力扣题:字符的统计-12.4
  • JVM 运行时参数
  • 高级系统架构设计师之路
  • 物理结构设计要点
  • 约瑟夫生死游戏
  • office办公技能|ppt插件使用
  • 前端笔记(四)Flex 布局
  • java WebSocket带参数处理使用
  • 2025上海十大动漫IP评选活动启动
  • 这座古村,藏着多少赣韵风华
  • 马上评丨全民定制公交,打开城市出行想象空间
  • 国家统计局:4月份居民消费价格同比下降0.1%
  • 春秋航空:如果供应链持续改善、油价回落到合理水平,公司补充运力的需求将会增长
  • 可量产9MWh超大容量储能系统亮相慕尼黑,宁德时代:大储技术迈入新时代