【代码随想录】day41

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


一、343整数拆分

cpp 复制代码
class Solution {
public:
    int integerBreak(int n) {
        vector<int> dp(n + 1, 1);
        for (int i = 2; i < n + 1; i ++) {
            for (int j = 1; j <= i / 2; j ++) {
                int num1 = max(j, dp[j]);
                int num2 = max(i - j, dp[i-j]);
                dp[i] = max(num1 * num2, dp[i]);
            }
        }
        return dp[n];
    }
};

二、96不同的二叉搜索树

cpp 复制代码
class Solution {
public:
    int numTrees(int n) {
        vector<int> dp(n + 1, 1);
        for (int i = 2; i <= n; i ++) {
            //j为根结点的值
            int count = 0;
            for (int j = i; j > 0; j --) {
                int left = j - 1;
                int right = i - j;
                count += dp[left] * dp[right];
            }
            dp[i] = count;
        }
        return dp[n];
    }
};

相关推荐
爱吃苹果的日记本13 分钟前
数据结构第三课(时间复杂度)
数据结构·学习
罗西的思考1 小时前
机器人模型(WM / WAM / VLA)综合分析与对比:从「看」到「想」再到「做」
人工智能·算法·机器学习
Logic1012 小时前
C语言/数据动态规划题解:翻转一次子数组后的最大子数组和——四状态DP(O(n)时间O(1)空间)
c语言·数据结构·动态规划·时间复杂度·算法题·状态机dp·最大子数组和
小哈里2 小时前
【知识】从学科到实践:自然・工程・社科・人文|算法・研发・产品・品牌设计
程序人生·算法·产品·设计·工程
小π军3 小时前
最大重叠区间数量
数据结构·算法
镜像视界(浙江)科技有限公司3 小时前
《视频孪生之上:二维展示终结,三维空间计算重构城市逻辑》——跨摄像连续表达 × 三角测量厘米级定位 × 动态轨迹建模,构建新一代城市空间
大数据·人工智能·算法·矩阵·音视频·空间计算
a187927218313 小时前
【算法】双指针与滑动窗口(二):滑动窗口——吃进、判定、吐出
算法·leetcode·双指针·滑动窗口·原理·模板·算法讲解
铭哥的编程日记3 小时前
从一道 LeetCode Hard 到吃透一类题:加权区间调度「排序 + 二分 + DP」
算法·leetcode·职场和发展
Logic1013 小时前
C语言/数据结构字符串题解:找出DNA序列中未配对的独特序列——排序+遍历(O(nlogn))
c语言·数据结构·字符串·数组·排序·时间复杂度·算法题
Navigator_Z4 小时前
LeetCode //C - 1248. Count Number of Nice Subarrays
c语言·算法·leetcode