代码随想录算法训练营第四十一天|343. 整数拆分、96.不同的二叉搜索树

提示

文章目录


一、整数拆分

对整数进行拆分,有两种方法得到dpi,一种是j * (i-j),另外一种是j * dpi-j,第二种方法相当于再次将i-j拆分,所以dpi需要取两者的最大值,同时j也是从1开始拆分的,i里面有小循环j,所以也要比较dpi,取最大值。

cpp 复制代码
class Solution {
public:
    int integerBreak(int n) {
        //1.确定dp数组和下标含义
        vector<int>dp(n+1);

        //2.确定递推公式

        //3.dp初始化
        dp[2] = 1;

        //4.遍历顺序
        for (int i = 3; i <= n; i++) {
            for (int j = 1; j <= i/2; j++) {
                dp[i] = max (dp[i], max(dp[i-j] * j, (i-j) * j));
            }
        }
        return dp[n];
    }
};

二、不同的二叉搜索树

有点难理解,主要还是找递推关系,建立递推公式

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];
    }
};

总结

欠的补完了,之后再忙也要抽出时间多看多写

学习时间90min。

学习资料:《代码随想录》

相关推荐
m0_7202450113 小时前
1543.统计好三元组(简单)
开发语言·算法
To_OC13 小时前
LC 560 和为 K 的子数组:前缀和配哈希表,这对组合我是真的服了
javascript·算法·程序员
hans汉斯14 小时前
《软件工程与应用》期刊推荐&10月版面征稿中
图像处理·人工智能·深度学习·算法·音视频·软件工程
叠层归一研究院14 小时前
AGI 系统(八):符号范畴嵌入函子 — SymCat ↪ C_M107 严格化
c语言·开发语言·人工智能·算法·transformer·agi
其美杰布-富贵-李15 小时前
08 进阶评估指标与算法特定指标
人工智能·算法
.道阻且长.16 小时前
5.LeetCode算法习题讲解--双指针--有效三角形的个数
算法·leetcode·职场和发展
我是海飞16 小时前
杰理JL703N SSD1306 OLED(128x64) 点阵屏移植说明
单片机·算法·嵌入式·音频·杰理
wabs66617 小时前
关于图论【最短路径之Bellman_ford 算法(单源有限最短路)|卡码网96.城市间货物运输III的思考】
数据结构·算法·图论·卡码网·bellman_ford·单源有限最短路
wuyk55517 小时前
2.队列:先进先出的线性数据结构
c语言·数据结构·stm32·单片机
会周易的程序员18 小时前
aiDgePLC — IEC61131-3 ST PLC 虚拟机调试与运行环境
c++·物联网·虚拟机·st·工业协议·iec61131·梯形图