做服装外单的网站有哪些徐闻手机网站建设公司
2026/1/9 22:41:19 网站建设 项目流程
做服装外单的网站有哪些,徐闻手机网站建设公司,零基础网站建设教学,给一个免费的网站leetcode题目链接 题目#xff1a; 给你一个整数 n #xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的二叉搜索树有多少种#xff1f; 返回满足题意的二叉搜索树的种数。 示例 1#xff1a; 输入#xff1a;n 3 输出#xff1a;5 示例 2#xff1a; 输入给你一个整数 n 求恰由 n 个节点组成且节点值从 1 到 n 互不相同的二叉搜索树有多少种返回满足题意的二叉搜索树的种数。示例 1输入n 3输出5示例 2输入n 1输出1提示1 n 191、确定dp数组以及下标的含义dp[i] 表示 1 到 i 可以组成的互不相同二叉搜索树的种类。2、确定递推公式这个题目有些抽象可以举例推导来找出递推关系。n 1 时只有 1 种dp[1] 1。n 2 时1、2 能组成的不同的二叉搜索数有下列 2 种 dp[2] 2。n 3 时1、2、3 能组成的不同的二叉搜索数有下列 5 种。让每个数都做一次根节点当 1 做根节点时左子树只有为空这 1 种情况右子树有 2 种情况当 2 做根节点时左子树只有 1 种情况右子树也只有 1 种情况当 3 做根节点时左子树有 2 种情况右子树只有 1 种情况。在二叉搜索树中一个节点的左右孩子还是一个二叉搜索树。不难发现1 做根节点时右子树的那 2 种情况其实就是求 2 和 3 能组成的二叉搜索树有多少种也就是 dp[2] 的值左子树为空空也可以看成是 1 种情况也就是说 dp[0] 1那么 1 做根节点时一共有 dp[0] × dp[2] 2 种情况2 做根节点时左右子树各有 1 个节点那么就是 dp[1] × dp[1] 1 种情况3 做根节点时有 dp[2] × dp[0] 2 种情况所以当 n 3 时一共有 dp[0] × dp[2] dp[0] × dp[2] dp[0] × dp[2] 5 种。归纳一下可以得出dp[i] dp[j] * dp[(i - 1) - j];3、dp数组如何初始化dp[0] 1dp[0] 不在题目要求范围内为了方便计算我们定义 0 个节点时为 1 种情况。4、确定遍历顺序外层循环从左向右遍历 dp 数组内层循环是求 dp[i] 的计算过程j 表示左子树节点个数(i - 1) - j 表示右子树节点个数。for (int i 1; i n; i) { for (int j 0; j i; j) { dp[i] dp[j] * dp[(i - 1) - j]; } }5、举例推导dp数组可以尝试计算 dp[4] 就不在此赘述了。class Solution { public int numTrees(int n) { int[] dp new int[n 1]; dp[0] 1; for (int i 1; i n; i) { for (int j 0; j i; j) { dp[i] dp[j] * dp[(i - 1) - j]; } } return dp[n]; } }

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询