【动态规划-卡特兰数——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];
    }
};

代码解析

相关推荐
foxsen_xia8 分钟前
go(基础06)——结构体取代类
开发语言·算法·golang
foxsen_xia10 分钟前
go(基础08)——多态
算法·golang
盐焗西兰花10 分钟前
鸿蒙学习实战之路:Tabs 组件开发场景最佳实践
学习·华为·harmonyos
leoufung14 分钟前
用三色 DFS 拿下 Course Schedule(LeetCode 207)
算法·leetcode·深度优先
巨人张19 分钟前
C++火柴人跑酷
开发语言·c++
_Kayo_24 分钟前
Next.js 路由 简单学习笔记
笔记·学习·next.js
盐焗西兰花29 分钟前
鸿蒙学习实战之路 - 瀑布流操作实现
学习·华为·harmonyos
酒尘&40 分钟前
Hook学习-上篇
前端·学习·react.js·前端框架·react
qq_381454991 小时前
Python学习技巧
开发语言·python·学习
im_AMBER1 小时前
算法笔记 18 二分查找
数据结构·笔记·学习·算法