LeetCode 95. Unique Binary Search Trees
来源:互联网 发布:ubuntu 日志 编辑:程序博客网 时间:2024/06/13 14:30
给定n, 求不同的BST的数目。
递归应该会超时,动态规划。dp[i]代表节点数为i时,数的种类。
对给定的n, BST的数目应该等于:
左子树节点数为0的种类 * 右子树节点数为n-1的种类 +
左子树节点数为1的种类 * 右子树节点数为n-2的种类 +
...
左子树节点数为n-1的种类 * 右子树节点数为0的种类
注意到左子树节点数为n-1的种类和右子树节点数为n-1的种类是相同的,都为dp[n-1].(虽然这两种数包含的val并不相等,但它们结构相同,种类数量相同)
代码:
class Solution {public: int numTrees(int n) { vector<int> dp(n+1, 0); dp[0] = 1; for (int i = 1; i <= n; ++ i) { for (int j = 0; j <= i-1; ++ j) { dp[i] += (dp[j] * dp[i-1-j]); } } return dp[n]; }};
0 0
- LeetCode 95. Unique Binary Search Trees
- [LeetCode]95.Unique Binary Search Trees II
- [Leetcode] 95. Unique Binary Search Trees II
- LeetCode --- 95. Unique Binary Search Trees II
- [leetcode] 95.Unique Binary Search Trees II
- [leetcode] 95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II LeetCode
- ***LeetCode 95. Unique Binary Search Trees II
- Leetcode 95. Unique Binary Search Trees II
- LeetCode *** 95. Unique Binary Search Trees II
- 【LeetCode】95. Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- [leetcode]95. Unique Binary Search Trees II
- [leetcode]95. Unique Binary Search Trees II
- [LeetCode] 95. Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- [leetcode] 95. Unique Binary Search Trees II
- Leetcode-95. Unique Binary Search Trees II
- LeetCode 92. Reverse Linked List II
- 发现车顶还顶着两台奥迪自行车
- uip
- LeetCode 93. Restore IP Addresses
- LeetCode 94. Binary Tree Inorder Traversal
- LeetCode 95. Unique Binary Search Trees
- $_SERVER的详细参数
- 创业想法
- 使用 GDB 调试多进程程序
- How to Enable USB-Debugging with Nexus 5 for Android Studio
- poj 2352 Stars 线段树
- 易学设计模式看书笔记(6) - 创建者模式
- 【足迹C++primer】55、容器和继承
- [ACM] POJ 3270 Cow Sorting (置换,贪心)