Day40| 343 整数拆分 96 不同的二叉搜索树

目录

[343 整数拆分](#343 整数拆分)

[96 不同的二叉搜索树](#96 不同的二叉搜索树)


343 整数拆分

cpp 复制代码
class Solution {
public:
    int integerBreak(int n) {
        vector<int> dp(n + 1);
        dp[2] = 1;

        for(int i = 3; i <= n; i++){
            for(int j = 1; j <= i / 2; j++){
                dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j));
            }
            cout << "dp[" << i << "] = " << dp[i] << endl;
        }
        return dp[n];
    }
};

96 不同的二叉搜索树

cpp 复制代码
class Solution {
public:
    int numTrees(int n) {
        //1 第 i 个数有dp[i]种不同的二叉树数量
        vector<int> dp(n + 1, 0);
        //2 初始化
        dp[0] = 1;
        dp[1] = 1;
        //3 数组遍历
        for(int i = 2; i <= n; i++){
            for(int j = 1; j <= i; j++){
                //4 递归方程
                dp[i] += dp[j - 1] * dp[i - j];
            }
        }
        return dp[n];
    }
};
相关推荐
Tisfy2 分钟前
LeetCode 3713.最长的平衡子串 I:计数(模拟)
算法·leetcode·题解·模拟
月疯2 分钟前
陀螺仪和加速度计(模拟状态,计算运动状态)
算法
Σίσυφος19007 分钟前
双目立体视觉 数学推导(从 F → E → R,T)
算法
Hcoco_me16 分钟前
目标追踪概述、分类
人工智能·深度学习·算法·机器学习·分类·数据挖掘·自动驾驶
熬了夜的程序员21 分钟前
【LeetCode】117. 填充每个节点的下一个右侧节点指针 II
java·算法·leetcode
wengqidaifeng22 分钟前
数据结构---链表的奇特(下)双向链表的多样魅力
c语言·数据结构·链表
一叶之秋141235 分钟前
基石之力:掌握 C++ 继承的核心奥秘
开发语言·c++·算法
拾光Ծ38 分钟前
【优选算法】滑动窗口算法:专题一
c++·算法·滑动窗口·c++算法·滑动窗口算法·笔试面试
im_AMBER42 分钟前
Leetcode 118 从中序与后序遍历序列构造二叉树 | 二叉树的最大深度
数据结构·学习·算法·leetcode
YuTaoShao42 分钟前
【LeetCode 每日一题】3721. 最长平衡子数组 II ——(解法二)分块
java·算法·leetcode