动态规划part03 Day43

LC343整数拆分(未掌握)

  1. 未掌握分析:dp数组的含义没有想清楚,dp[i]表示分解i能够达到的最大乘积,i能够如何分解呢,从1开始遍历,直到i-1;每次要不是j和i-j两个数,要不是j和dp[i-j]两个以上的数字
  2. 递推公式:dp[i] = Math.max(dp[i],Math.max(jdp[i-j],j(i-j)))
  3. 代码

LC96不同的搜索二叉树(未掌握)

  1. n=3的情况
    • 当1为头结点的时候,其右子树有两个节点,看这两个节点的布局,是和 n 为2的时候两棵树的布局是一样的
    • 当3为头结点的时候,其左子树有两个节点,看这两个节点的布局,是和n为2的时候两棵树的布局也是一样的
    • 当2为头结点的时候,其左右子树都只有一个节点,布局是和n为1的时候只有一棵树的布局也是一样的
    • dp[3],就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索树的数量 + 元素3为头结点搜索树的数量
      • 元素1为头结点搜索树的数量 = 右子树有2个元素的搜索树数量 * 左子树有0个元素的搜索树数量=dp[2]*dp[0]
      • 元素2为头结点搜索树的数量 = 右子树有1个元素的搜索树数量 * 左子树有1个元素的搜索树数量=dp[1]*dp[1]
      • 元素3为头结点搜索树的数量 = 右子树有0个元素的搜索树数量 * 左子树有2个元素的搜索树数量=dp[0]*dp[2]
  2. dp数组递归式:j:1-i,dp[i]+=dp[j-1]*dp[i-j]
  3. 代码
相关推荐
charlie11451419110 分钟前
编写INI Parser 测试完整指南 - 从零开始
开发语言·c++·笔记·学习·算法·单元测试·测试
mmz120715 分钟前
前缀和问题2(c++)
c++·算法
TL滕34 分钟前
从0开始学算法——第十六天(双指针算法)
数据结构·笔记·学习·算法
蒲小英1 小时前
算法-贪心算法
算法·贪心算法
mit6.8241 小时前
链式投票|流向贪心
算法
君义_noip1 小时前
洛谷 P4777 【模板】扩展中国剩余定理(EXCRT)
算法·数论·信息学奥赛·csp-s
天赐学c语言1 小时前
12.14 - 搜索旋转排序数组 && 判断两个结构体是否相等
数据结构·c++·算法·leecode
1024肥宅1 小时前
JavaScript 性能与优化:数据结构和算法
前端·数据结构·算法
kaikaile19952 小时前
MATLAB 灰度图像的二维傅里叶变换
算法·计算机视觉·matlab
仰泳的熊猫2 小时前
1112 Stucked Keyboard
数据结构·c++·算法·pat考试