[LeetCode]Unique Binary Search Trees
来源:互联网 发布:门诊系统的数据库设计 编辑:程序博客网 时间:2024/06/05 06:27
题目:
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
思路:
n=0,1,2时,可以直接给出答案。
当n>=3时,要考虑几种情况:3 插入 1,2 中,插入头部,插入尾部,插入中间。头和尾均有 numTrees(3-1)种结果,插入中间就要考虑 左右两侧数字的可能性。
扩展的n的情况,依旧头尾均有numTrees(n-1)种结果,插入中间i的位置,要考虑 1~i,i+1~n-1 左右两侧的可能,其结果为 numTrees(i)*numTrees(n-1-i)
用递归简单,而且明白。
代码:
public class Solution { public int numTrees(int n) { if(n==0) return 0; if(n==1) return 1; if(n==2) return 2; int sum=0; int i=n-2; while(i>0){ sum=numTrees(n-1-i)*numTrees(i)+sum; i--; } sum=sum+2*numTrees(n-1); return sum; }}
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
- 搭建cocos2d-android-1环境
- JNI基本数据类型
- Java学习笔记--数组
- 设计模式之abstract factory(抽象工厂)
- Python测试神器-nosetests
- [LeetCode]Unique Binary Search Trees
- CentOS 6.5安全加固及性能优化
- ROW_NUMBER()方法理解
- [ext4]13 空间管理 - Prealloc分配机制
- 关于HtmlImg控件
- POJ 2184 Cow Exhibition(DP:01背包)
- Java线程与多线程
- 开源GIS软件初探
- android实现音乐播放器,SQLite数据库的操作