动态规划 Leetcode 96 不同的二叉搜索树

不同的二叉搜索树

Leetcode 96

学习记录自代码随想录

要点:1.递推公式,想到以根节点数字不同作为分类条件求和得到dp[i];

class Solution {
public:
    int numTrees(int n) {
        if(n == 1 || n == 2) return n;

        // 1.dp[i]返回输入i时的满足条件的二叉搜索树的种数
        vector<int> dp(n+1, 0);
        // 2.递推公式,想到以根节点不同作为分类条件求和得到dp[i],dp[i] = sum(dp[j-1]*dp[i-j]) j = 1:1:n
        // 3.dp数组初始化
        dp[0] = 1;  // 不能设置为0,因为是乘积
        dp[1] = 1;
        dp[2] = 2;
        // 4.遍历顺序从小到大遍历
        for(int i = 3; i < n+1; i++){
            for(int j = 1; j <= i; j++){
                dp[i] += (dp[j-1] * dp[i-j]);
            }
        } 
        // 5.举例推导dp数组
        return dp[n];
    }
};

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 03:08:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 03:08:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 03:08:03       82 阅读
  4. Python语言-面向对象

    2024-03-17 03:08:03       91 阅读

热门阅读

  1. CSV Excel乱码问题 和 BOM标记

    2024-03-17 03:08:03       40 阅读
  2. SpringBoot之yml与properties配置文件格式的区别

    2024-03-17 03:08:03       43 阅读
  3. gazebo_ros和ros_ign_gazebo

    2024-03-17 03:08:03       37 阅读
  4. python calendar内置日历库函数方法

    2024-03-17 03:08:03       42 阅读
  5. python企业编码管理的程序(附源码)

    2024-03-17 03:08:03       41 阅读
  6. 链表快慢指针合集(力扣)

    2024-03-17 03:08:03       39 阅读
  7. week07day04(powerbi 概况指标体系)

    2024-03-17 03:08:03       42 阅读
  8. 最大二进制奇数(Lc2864)——贪心

    2024-03-17 03:08:03       40 阅读
  9. 如何关闭和删除所有Docker容器和镜像

    2024-03-17 03:08:03       38 阅读