343. 整数拆分

1、确定dp数组以及下标含义。

dp[i]:分拆数字i,可以得到的最大的乘积

2、确定递推公式:

dp[i]最大乘积出处:从1遍历j到i,j * dp[i-j] 与 j * (i-j)取最大值。( 拆分j的情况,在遍历j的过程中dp[i - j]其实都计算过了 )

所以递推公式为:

dp[i] =max(dp[i],max(j*(i-j),j*dp[i-j]));

3、dp的初始化

dp[0] = dp[1] = 0;

dp[2] = 1;

4、确定遍历顺序

由于递推公式,dp[i]是依靠dp[i-j]的状态,所以i遍历从前向后。j也是从前向后遍历的。

class Solution {public:int integerBreak(int n) {vector<int> dp(n+1);dp[0] = dp[1] = 0;dp[2] = 1;for(int i = 1; i <= n; i++){for(int j = 1; j <= i; j++){dp[i] =max(dp[i],max(j*(i-j),j*dp[i-j]));}}return dp[n];}
};

96. 不同的二叉搜索树

分析:

dp[3] = 元素1为头结点搜索树的数目 + 元素2为头结点搜索树的数目 + 元素3为头结点搜索树的数量

元素1为头结点搜索树的数量 = 右子树有2个元素的搜索树数量 * 左子树有0个元素的搜索树数量

元素2为头结点搜索树的数量 = 右子树有1个元素的搜索树数量 * 左子树有1个元素的搜索树数量

元素3为头结点搜索树的数量 = 右子树有0个元素的搜索树数量 * 左子树有2个元素的搜索树数量

所以 dp[3] = dp[2] * dp[0] + dp[1] * dp[1] + dp[0] * dp[2];

1、确定dp数组以及下标含义

dp[i] : 1到i节点组成的二叉搜索树的个数

2、确定递推公式

dp[i] += dp[j-1] * dp[i-j];
dp[j-1]:j为头结点左子树节点数量
dp[i-j]:i-j为头结点右子树节点数量

3、dp数组初始化

dp[0] = 1;

4、确定遍历顺序

从前往后遍历:

for(int i = 1; i <= n; i++)
{for(int j = 1; j <= i; j++){dp[i] += dp[j-1]*dp[i-j];}
}
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];}
};

《dp补卡——343. 整数拆分、96. 不同的二叉搜索树》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 程序调试的时候利用Call Stack窗口查看函数调用信息
  2. 后门技术(HOOK篇)之DT_RPATH
  3. HttpServlet中的service方法
  4. 卫星轨道推演计算相关知识点总结(含欧拉角、旋转矩阵、及各坐标系转化等)
  5. 小波的秘密10_小波包的数学支撑
  6. boost::geometry::is_convex用法的测试程序
  7. web 上传文件到linux没权限,Javaweb上传文件到Linux 没有读写权限
  8. php返回json套数组_教你PHP怎么不用框架写优雅的中小网站
  9. ubuntu18.04 中个性化配置vim方法
  10. Java入门视频教程
  11. 运维工程师必会原理知识
  12. 推荐 10 个好用的 JavaScript 代码压缩工具
  13. 幼儿园观察记录的目的和目标_幼儿园益智活动观察记录与反思
  14. 首席数据官:从哪里来?到哪里去?
  15. 4016: 辉夜的夜空明珠(moon)
  16. 天津巨富八大家——天成号韩家
  17. mysql连接中文_MYSQL远程连接查询中文乱码
  18. A component required a bean of type ‘com.dmsd.spm.provider.service.BookServi
  19. Zabbix-01简单导入MIB文件并测试
  20. 《七步走出职场焦虑©:释放压力,做情绪的主人》

热门文章

  1. .net数据源控件绑定mysql_理解asp.net中DropDownList编辑数据源,绑定数据库数据。...
  2. mpvue微信小程序动画_入门微信小程序
  3. vue基础教程总结篇,用最短的时间入门vue.js(持续更新...)
  4. 从WEB应用的角度,一个应用都需要维护一些不同作用范围的状态, 请问下面哪些状态作用域是WEB应用特有的:( )
  5. 通过暴露出来的OA和github信息拿Shell
  6. ext3 tree tbar 初始化定义
  7. mysql不复制数据_windows mysql不停止服务复制数据
  8. re正则表达式公式讲解5
  9. 小谈React、React Native、React Web
  10. ASP.NET Core Razor Pages