mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
更新 0096.不同的二叉搜索树.mc 修正错别字
This commit is contained in:
@ -18,7 +18,7 @@
|
||||
|
||||
这道题目描述很简短,但估计大部分同学看完都是懵懵的状态,这得怎么统计呢?
|
||||
|
||||
关于什么是二叉搜索树,我们之前在讲解二叉树专题的时候已经详细讲解过了,也可以看看这篇[二叉树:二叉搜索树登场!](https://programmercarl.com/0700.二叉搜索树中的搜索.html)在回顾一波。
|
||||
关于什么是二叉搜索树,我们之前在讲解二叉树专题的时候已经详细讲解过了,也可以看看这篇[二叉树:二叉搜索树登场!](https://programmercarl.com/0700.二叉搜索树中的搜索.html)再回顾一波。
|
||||
|
||||
了解了二叉搜索树之后,我们应该先举几个例子,画画图,看看有没有什么规律,如图:
|
||||
|
||||
@ -36,9 +36,9 @@ n为1的时候有一棵树,n为2有两棵树,这个是很直观的。
|
||||
|
||||
当3为头结点的时候,其左子树有两个节点,看这两个节点的布局,是不是和n为2的时候两棵树的布局也是一样的啊!
|
||||
|
||||
当2位头结点的时候,其左右子树都只有一个节点,布局是不是和n为1的时候只有一棵树的布局也是一样的啊!
|
||||
当2为头结点的时候,其左右子树都只有一个节点,布局是不是和n为1的时候只有一棵树的布局也是一样的啊!
|
||||
|
||||
发现到这里,其实我们就找到的重叠子问题了,其实也就是发现可以通过dp[1] 和 dp[2] 来推导出来dp[3]的某种方式。
|
||||
发现到这里,其实我们就找到了重叠子问题了,其实也就是发现可以通过dp[1] 和 dp[2] 来推导出来dp[3]的某种方式。
|
||||
|
||||
思考到这里,这道题目就有眉目了。
|
||||
|
||||
@ -63,7 +63,7 @@ dp[3],就是 元素1为头结点搜索树的数量 + 元素2为头结点搜索
|
||||

|
||||
|
||||
|
||||
此时我们已经找到的递推关系了,那么可以用动规五部曲在系统分析一遍。
|
||||
此时我们已经找到递推关系了,那么可以用动规五部曲再系统分析一遍。
|
||||
|
||||
1. 确定dp数组(dp table)以及下标的含义
|
||||
|
||||
@ -87,7 +87,7 @@ j相当于是头结点的元素,从1遍历到i为止。
|
||||
|
||||
那么dp[0]应该是多少呢?
|
||||
|
||||
从定义上来讲,空节点也是一颗二叉树,也是一颗二叉搜索树,这是可以说得通的。
|
||||
从定义上来讲,空节点也是一棵二叉树,也是一棵二叉搜索树,这是可以说得通的。
|
||||
|
||||
从递归公式上来讲,dp[以j为头结点左子树节点数量] * dp[以j为头结点右子树节点数量] 中以j为头结点左子树节点数量为0,也需要dp[以j为头结点左子树节点数量] = 1, 否则乘法的结果就都变成0了。
|
||||
|
||||
|
Reference in New Issue
Block a user