代码随想录96.不同的二叉搜索树
- 软件开发
- 2025-07-21 19:16:43

题目 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1: 输入:n = 3 输出:5 示例 2: 输入:n = 1 输出:1
解题思路 本题首先得找到规律,通过推演可以发现存在递推关系,用dp[i]表示数字i可以表示成dp[i]种搜索二叉树,如dp[3]=dp[0]*dp[2] + dp[1]*dp[1] + dp[2]dp[0]. 初始化dp[0]=1,因为空树是搜索二叉树,初始化dp[1]=1.
代码实现
class Solution { public: int numTrees(int n) { vector<int> dp(n+1, 0); dp[0] = 1; dp[1] = 1; for (int i = 2; i <= n; i++) { for (int j = 1; j <= i; j++) { dp[i] += dp[j-1] * dp[i-j]; } } return dp[n]; } };代码随想录96.不同的二叉搜索树由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“代码随想录96.不同的二叉搜索树”
上一篇
阿里云docker加速