博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] 96. Unique Binary Search Trees I & 95. II
阅读量:6479 次
发布时间:2019-06-23

本文共 1983 字,大约阅读时间需要 6 分钟。

Unique Binary Search Trees

Problem

Given n, how many structurally unique BSTs (binary search trees) that store values 1...n?

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

Note

DP

Solution

public class Solution {    public int numTrees(int n) {        int[] count = new int[n+1];        count[0] = 1;        for (int i = 1; i <= n; i++) {            for (int root = 1; root <= i; root++) {                int left = count[root-1];                int right = count[i-root];                count[i] += left*right;            }        }        return count[n];    }}

Unique Binary Search Trees II

Problem

Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.

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

Note

DFS

Solution

class Solution {    public List
generateTrees(int n) { if (n == 0) return new ArrayList<>(); return helper(1, n); } private List
helper(int start, int end) { List
res = new ArrayList<>(); if (start > end) { res.add(null); return res; } for (int i = start; i <= end; i++) { List
left = helper(start, i-1); List
right = helper(i+1, end); for (TreeNode leftNode: left) { for (TreeNode rightNode: right) { TreeNode root = new TreeNode(i); root.left = leftNode; root.right = rightNode; res.add(root); } } } return res; }}

转载地址:http://zvwuo.baihongyu.com/

你可能感兴趣的文章
js中回调函数写法
查看>>
React native android 最常见的10个问题
查看>>
数据结构和算法
查看>>
.Net 项目代码风格要求
查看>>
[pat]1045 Favorite Color Stripe
查看>>
Immutable学习及 React 中的实践
查看>>
【转】性能测试步骤
查看>>
OSI与TCP/IP各层的结构与功能,都有哪些协议
查看>>
Android实例-程序切换到后台及从后台切换到前台
查看>>
spring boot启动定时任务
查看>>
[转]html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
查看>>
算法 (二分查找算法)
查看>>
java Date 当天时间戳处理
查看>>
Python~迭代
查看>>
linux常用命令-关机、重启
查看>>
css布局 - 九宫格布局的方法汇总(更新中...)
查看>>
iOS开发之调用系统设置
查看>>
解决wampserver 服务无法启动
查看>>
初次使用 VUX
查看>>
javascript 字符串转数字的简便写法
查看>>