python进行网站开发,营销策划方案案例,it外包企业,建设家具网站给你一个整数 n #xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种#xff1f;返回满足题意的二叉搜索树的种数。
思路一#xff1a;动态规划
int numTrees(int n){int f[n1];memset(f,0,sizeof(f));f[0] f[1] 1;for(int i 2;in;i)…给你一个整数 n 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种返回满足题意的二叉搜索树的种数。
思路一动态规划
int numTrees(int n){int f[n1];memset(f,0,sizeof(f));f[0] f[1] 1;for(int i 2;in;i){for(int j 1;ji;j){f[i] f[j-1]*f[i-j];}}return f[n];}
分析
本题与上题近似只需分别考虑左右子树即f[j-1]*f[i-j]得到状态方程最后输出f[n[即可或者直接使用公式二叉搜索树的种数与卡特兰数有关套用公式也可得到答案
总结
本题考察动态规划理解状态方程f[i] f[j-1]*f[i-j];即可解决