[LeetCode] Unique Binary Search Trees
来源:互联网 发布:高丝婴儿面膜知乎 编辑:程序博客网 时间:2024/05/16 14:48
问题:
Given n, how many structurally unique BST's (binary search trees) that store values 1...n?
For example,
Given n = 3, there are a total of 5 unique BST's.
1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3
分析:
一道比较简单的题,可以通过recursion解决。对于一个range[1, n],我们让每一个元素i当一次root,然后recursively计算range[1, i-1]和range[i+1, end],两个结果相乘即可。即left subtree的种数乘以right subtree的种树。只需要小心一点边界情况即可。
代码:(O(n logn))
class Solution{public:int numTreesHelper(int start, int end) {if (start >= end) return 1;int result = 0;for (int i = start; i <= end; i ++) {result += (numTreesHelper(start, i - 1) * numTreesHelper(i + 1, end));}return result;}int numTrees(int n) {return numTreesHelper(1, n);}};
0 0
- LeetCode: Unique Binary Search Trees
- LeetCode : Unique Binary Search Trees
- [Leetcode] Unique Binary Search Trees
- [LeetCode]Unique Binary Search Trees
- LeetCode Unique Binary Search Trees
- Leetcode: Unique Binary Search Trees
- LeetCode-Unique Binary Search Trees
- [leetcode] Unique Binary Search Trees
- LeetCode - Unique Binary Search Trees
- [LeetCode] Unique Binary Search Trees
- 【Leetcode】Unique Binary Search Trees
- Leetcode: Unique Binary Search Trees
- 【LeetCode】Unique Binary Search Trees
- Leetcode Unique Binary Search Trees
- Leetcode: Unique Binary Search Trees
- [LeetCode] Unique Binary Search Trees
- Leetcode: Unique Binary Search Trees
- LeetCode | Unique Binary Search Trees
- FWNX - two kinds of Yourself
- 解决方案中如何添加项目
- [LeetCode] Candy
- Linux c编程一站式学习笔记(02), Return语句
- Ruby命令行参数介绍
- [LeetCode] Unique Binary Search Trees
- DP34 流水线调度问题 Assembly Line Scheduling @geeksforgeeks
- fwnx - 4.7 tree contains ; recursive
- Ch1-5: Write a method to replace all spaces in a string with ‘%20’.
- fwnx- find the common ancestor in a tree
- [LeetCode] Spiral Matrix
- cocos2d-x游戏开发系列教程-中国象棋06-游戏规则
- [LeetCode] Minimum Path Sum
- IRP IO_STACK_LOCATION 《寒江独钓》内核学习笔记(1)