Unique Binary Search Trees
Given an integer n, generate all structurally unique BST’s (binary search trees) that store values 1 … n.
(有效二叉查找(排序)树个数)
Example:
1. 动态规划
这道题实质上是 卡塔兰数 的一个实例。具体递推过程如下:
1 | 1 n = 1 |
- n=0 时,dp[0] = 1
- n=1 时,dp[1] = 1
- n=2 时,dp[2] = dp[0]*dp[1] + dp[1]*dp[0] (以1为根 + 以2为根)
- n>=2 时,dp[n] = dp[0]*dp[n-1] + dp[1]*dp[n-2] + … + dp[n-1]*dp[0]
1 | class Solution: |