leetcode 95. Unique Binary Search Trees II | Java最短代码实现
来源:互联网 发布:马士兵大数据视频 编辑:程序博客网 时间:2024/06/02 02:06
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.
For example,
Given n = 3, your program should return all 5 unique BST's shown below.
1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5
The above binary tree is serialized as "{1,2,3,#,#,4,#,#,5}"
.
【抛砖】
这是卡特兰数的一种应用,采用动态规划:
1.从start到end,逐个取出一个rootVal作为根节点(n阶原问题)
2.以根rootVal为界划分为左右子树,并指向左右子树(n-1阶子问题)
3.反复递归:
public List<TreeNode> generateTrees(int n) { if (n <= 0) return new ArrayList<TreeNode>(); return generateSubTree(1, n); } public ArrayList<TreeNode> generateSubTree(int start, int end) { ArrayList<TreeNode> result = new ArrayList<TreeNode>(); if (start > end) { result.add(null); return result; } for (int rootVal = start; rootVal <= end; rootVal++) for (TreeNode leftSubTreeRoot : generateSubTree(start, rootVal - 1)) for (TreeNode rightSubTreeRoot : generateSubTree(rootVal + 1, end)) { TreeNode root = new TreeNode(rootVal); root.left = leftSubTreeRoot; root.right = rightSubTreeRoot; result.add(root); } return result; }9 / 9 test cases passed. Runtime: 4 ms Your runtime beats 5.97% of javasubmissions.
欢迎优化!
1 0
- leetcode 95. Unique Binary Search Trees II | Java最短代码实现
- [Leetcode] Unique Binary Search Trees II (Java)
- leetcode Unique Binary Search Trees II java
- [LeetCode][Java]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
- 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
- 数据结构--栈
- 28. Implement strStr()
- POJ-2115-C Looooops(扩展欧几里得)
- 判断有向图中是否有环
- 原生js四舍五入,保留2/3位小数
- leetcode 95. Unique Binary Search Trees II | Java最短代码实现
- subline text3快捷键
- 【清华集训2014】mex
- 303. Range Sum Query - Immutable
- POJ 2478-Farey Sequence(欧拉函数)
- 清醒吧拭心!自满的程序员是最菜的!
- Volley 自定义XMLRequest和GSONRequest
- 234. Palindrome Linked List
- onCreate