不同的二叉查找树-LintCode
来源:互联网 发布:gcf软件 编辑:程序博客网 时间:2024/06/01 09:50
给出 n,问由 1…n 为节点组成的不同的二叉查找树有多少种?
样例
给出n = 3,有5种不同形态的二叉查找树:
思路:
用f(n)来表示产生二叉树的种类,易得f(0)=0(边界条件),f(1)=1,f(2)=2;
对于f(3),分三种情况:
当1为根,2,3在1的右子树,为f(2);
当2为根,1,3分别为左右子树,为f(1);
当3为根,1,2在3的左子树,为f(2);
f(3)=f(2)+f(1)+f(2);
故
#ifndef C163_H#define C163_H#include<iostream>#include<vector>using namespace std;class Solution {public: /** * @paramn n: An integer * @return: An integer */ int numTrees(int n) { // write your code here if (n < 0) return 0; vector<int> v(n + 1); v[0] = 1; for (int i = 1; i <= n; ++i) { for (int k = 1; k <= i; ++k) { v[i] += v[k - 1] * v[i - k]; } } return v[n]; }};#endif
阅读全文
0 0
- LintCode-不同的二叉查找树 II
- LintCode-不同的二叉查找树
- lintcode-不同的二叉查找树-163
- LintCode 不同的二叉查找树
- LintCode:不同的二叉查找树
- 不同的二叉查找树 II lintcode
- lintcode,不同的二叉查找树
- LintCode 163-不同的二叉查找树
- LintCode :不同的二叉查找树
- lintcode-不同的二叉查找树
- 不同的二叉查找树-LintCode
- 不同的二叉查找树 II -LintCode
- lintcode --不同的二叉查找树
- lintcode--不同的二叉查找树II
- lintcode:不同的二叉查找树
- LintCode:M-不同的二叉查找树个数
- LINTCODE——不同的二叉查找树
- LintCode -- 不同的二叉查找树(python-O(n)时间复杂度)
- 使用工业相机获取图片——利用Sapera文档
- Java设计模式——装饰模式
- 这样学设计事半功倍
- 浅谈独立博客建站
- string 转 java对象、转map的方式
- 不同的二叉查找树-LintCode
- 201. Bitwise AND of Numbers Range
- DPDK-HASH LIBRARY
- 搭建个人服务器
- java7中的fork join框架
- 简单博弈模型
- ISO映像的制作
- Java HashMap工作原理及实现
- 3Sum问题