9.9|day 2|整数拆分|不同的二叉搜索树

整数拆分:

复制代码
class Solution {
    public int integerBreak(int n) {
    int[] dp = new int[n+1];
    dp[2] =  1;
    for(int i = 3;i<=n;i++){
       for(int j = 1;j<=i-j;j++){
           dp[i] = Math.max(dp[i],Math.max(j*dp[i-j],j*(i-j)));
       }
    }//这里感觉要注意的就是j是我们要拆分的数,所以不会是dp[j]*dp[i-j],这种情况在代码的进行中会进行
       //因为j是从小到大进行的,拆分j的情况已经计算过了
        //感觉智商有点不够
        //从定义上来理解吧:j*dp[i-j]是将一个数拆分成两个及两个数以上,而dp[i-j]*dp[j]是将一个数默认拆分成四个数以上
        //前一种情况包括后一种,好像懂了
    return dp[n];
    }
}
复制代码
class Solution {
    public int numTrees(int n) {
    int[] dp = new int[n+1];
    dp[0] = 1;
    dp[1]  =1;//因为n的取值问题,所以不能写dp[2]
    for(int i = 2;i<=n;i++){
        for(int j  =1;j<=i;j++){
            ///dp[j-1]代表以j为头节点的左子树的最大二叉搜索树
            //dp[i-j]就是比j大的数,i是总数
            dp[i] += dp[j-1]*dp[i-j];
        }
    }
    return dp[n];
    }
}
相关推荐
2401_8685347816 分钟前
数据结构简答题100问
数据结构
小江的记录本28 分钟前
【JVM虚拟机】垃圾回收GC:垃圾判定算法:引用计数法、可达性分析算法(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·算法·spring·面试
Hello.Reader35 分钟前
算法基础(十四)—— 随机化快速排序为什么平均表现很好
算法
吴可可12337 分钟前
Teigha中OdGe几何库详解及C#使用
算法
爱喝水的鱼丶1 小时前
SAP-ABAP:变量、常量、结构与内表声明(10篇博客合集) 第六篇:ABAP 7.40+新特性:声明语法的简化写法与兼容注意事项
运维·服务器·开发语言·学习·算法·sap·abap
代码中介商1 小时前
B树:数据库索引的高效基石
数据结构·数据库
国科安芯1 小时前
AS32S601商业航天级抗辐照MCU芯片:架构设计与技术特性研究
单片机·嵌入式硬件·算法·安全·架构·risc-v
小糯米6011 小时前
C语言 自定义类型:结构体 与 联合体
c语言·开发语言·数据结构
菜菜的顾清寒2 小时前
力扣HOT100(34)图论-岛屿数量
算法·leetcode·图论
圣保罗的大教堂2 小时前
leetcode 2657. 找到两个数组的前缀公共数组 中等
leetcode