Task
● 343. 整数拆分
● 96.不同的二叉搜索树
详细布置
今天两题都挺有难度,建议大家思考一下没思路,直接看题解,第一次做,硬想很难想出来。
343. 整数拆分
programmercarl.com/0343.%E6%95…
视频讲解:www.bilibili.com/video/BV1Mg…
96.不同的二叉搜索树
programmercarl.com/0096.%E4%B8…
视屏[数学公式]讲解:www.bilibili.com/video/BV1eK…
整数拆分
5 MINS 没思路,直接看讲解。目标是尽量在30MINS搞懂一道题,手段不限 拆成m个数,这m个数要尽可能相等。才能哈使最终结果相乘最大。 怎么往动态规划那边靠呢?
tnnd 五部曲 1.dp下标含义:dp[i]表示将正整数i拆分成至少两个正整数的和之后,这些正整数的最大乘积。
2.dp状态方程推导:
力扣官方题解 链接:leetcode.cn/problems/in…
当i>2时,假设对正整数i拆分出的第一个正整数是j(1<j<i),则有以下两种方案:
- 将
i拆分成i和i-j的和, 且i-j不再拆分成多个正整数,此时的乘积是j x (i-j) - 将
i拆分成i和i-j的和,且i-j继续拆分成多个正整数,此时的乘积是j x dp\[i-j]因此,当j固定的时候,有dp[i] = max(j x(i-j), j x dp[i-j])由于j的取值范围是1到i-1,需要遍历所有的j得到dp[i]的最大值,因此最终的状态方程如下:
dp\[i] = max1≤j<i{ max(j x(i-j), j x dp[i-j])}
96.不同的二叉搜索树
二叉搜索树回顾!
二叉搜索树是一个有序树:
- 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
- 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
- 它的左、右子树也分别为二叉搜索树
关键点在于n个节点布局可以根据n-1个结点布局推出来。 0个节点布局为1种 1个节点布局为1种 2个节点布局为2种 3个节点布局由前3布局推理而出 好,就这么多,以后再补,下播!!