【动态规划-卡特兰数——96.不同的二叉搜索树】

1.题目解析

题目来源

|-------------------------------------------------------------------------------------------------------------------|
| 96.不同的二叉搜索树------力扣 |

测试用例

2.算法原理

1.状态表示

2.状态转移方程

3.初始化

需要用到前面位置的值,则需要初始化dp[0]为1,方便后续的填表

4.填表顺序

从前向后

5.返回值

根据状态表示返回dp[n]

3.实战代码

cpp 复制代码
class Solution {
public:
    int numTrees(int n) 
    {
        vector<int> dp(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];
    }
};

代码解析

相关推荐
式5162 分钟前
大模型学习基础(八)提示词(Prompt)工程
学习·prompt
leaves falling3 分钟前
冒泡排序(基础版+通用版)
数据结构·算法·排序算法
老鼠只爱大米8 分钟前
LeetCode算法题详解 56:合并区间
leetcode·并查集·合并区间·区间合并·线性扫描·算法面试
航Hang*24 分钟前
第3章:复习篇——第3节:数据查询与统计---题库
数据库·笔记·sql·学习·mysql·期末·复习
C雨后彩虹26 分钟前
无向图染色
java·数据结构·算法·华为·面试
咚咚王者29 分钟前
人工智能之核心基础 机器学习 第十四章 半监督与自监督学习总结归纳
人工智能·学习·机器学习
坚持就完事了33 分钟前
扫描线算法
算法
努力写代码的熊大34 分钟前
深入探索C++关联容器:Set、Map、Multiset与Multimap的终极指南及底层实现剖析
开发语言·c++
鱼跃鹰飞36 分钟前
Leetcode尊享面试100题:252. 会议室
算法·leetcode·面试
程序员-King.37 分钟前
二分查找——算法总结与教学指南
数据结构·算法