LeetCode: Validate Binary Search Tree
来源:互联网 发布:淘宝严重违规12分2999 编辑:程序博客网 时间:2024/04/30 18:07
思路:设 ret[i] 表示序列 1 到 i 的所有搜索二叉树的个数,那么在这些数中,必有一个数 k ∈ [1, i] 处在根节点位置,那么左子树的所有节点都小于 k,右子树的所有节点都大于 k,所以,当 k 处于根节点位置时,此时的树有 ret[k-1] * ret[i - k ] 棵,ret[k-1]表示小于k 的左子树个数,ret[i-k]表示大于k的右子树个数。依次求和所有k值,得到最后的结果,即ret[i] = ∑_k (ret[k-1] * ret[i-k]), k属于[1,i]。
code:
class Solution {public: int numTrees(int n) { int *ret = new int[n+1]; ret[0] = 1; ret[1] = 1; for(int i = 2;i<=n;i++){ ret[i] = 0; for(int j = 1;j <= i;j++) ret[i] += (ret[i - j] * ret[j - 1]); } return ret[n]; }};
0 0
- LeetCode: Validate Binary Search Tree
- [Leetcode] Validate Binary Search Tree
- LeetCode : Validate Binary Search Tree
- [LeetCode] Validate Binary Search Tree
- [LeetCode] Validate binary search tree
- [LeetCode]Validate Binary Search Tree
- [Leetcode]Validate Binary Search Tree
- [leetcode]Validate Binary Search Tree
- LeetCode-Validate Binary Search Tree
- [leetcode] Validate Binary Search Tree
- LeetCode - Validate Binary Search Tree
- [LeetCode] Validate Binary Search Tree
- Leetcode Validate Binary Search Tree
- LeetCode | Validate Binary Search Tree
- LeetCode - Validate Binary Search Tree
- Leetcode: Validate Binary Search Tree
- 【Leetcode】Validate Binary Search Tree
- 【leetcode】Validate Binary Search Tree
- Linux Thread 最基本用法
- LeetCode-Sum Root to Leaf Numbers
- 再谈冒烟测试
- [题解][LeetCode][Valid Parentheses]
- [leetcode] Unique Paths
- LeetCode: Validate Binary Search Tree
- 解密 【JavaScript Eval】不为人知的秘密
- IOS开发之__bridge,__bridge_transfer和__bridge_retained
- 初学ICE中间件总结笔记(一)
- 总结安卓开发中常用的七个第三方框架
- day122(7.13)性能测试知识总结V
- Enterprise Architect使用问题记录
- JavaScript基础-window.location的用法
- objective-c 字符串筛选数字(不使用正则表达式)