博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Lintcode]163. Unique Binary Search Trees
阅读量:5054 次
发布时间:2019-06-12

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

  • 本题难度: Medium
  • Topic: Bit Manipulation

Description

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

我的代码

class Solution:    """    @param n: An integer    @return: An integer    """    def numTrees(self, n):        # write your code here                A = [1, 1, 2]        if n<3:            return A[n]        for i in range(3,n + 1):            res = 0            for j in range(i):                res += A[j]*A[i - j - 1]            A.append(res)        return A[-1]

思路

假设f(x)为x个结点的不同的二叉搜索树数目。

n个结点的二叉搜索树,可以选取其中任何一个数k为根结点。
则左子树由1~k-1构成,右子树由k+1~n构成。则左子树一共有f(k-1)种情况,右子树有f(n-k-2)种情况。

  • 时间复杂度 O(log(n))

转载于:https://www.cnblogs.com/siriusli/p/10359899.html

你可能感兴趣的文章
使用cookie实现只出现一次的广告代码效果
查看>>
Android网络通信框架---Volley
查看>>
浅谈animation里的forwards
查看>>
事件的节流(throttle)与防抖(debounce)
查看>>
07_ddms透视图介绍
查看>>
python初步学习-python模块之 logging
查看>>
Molas——.NET依赖分离框架
查看>>
静态页面传值
查看>>
智能手持终端方案
查看>>
基于visual Studio2013解决C语言竞赛题之0408素数
查看>>
Harbor-企业级Registry服务器使用(图解)
查看>>
新建的亚马逊云服务器EC2 ping 不通 解决方案
查看>>
一 数据的概括性度量
查看>>
Spring boot(一) 入门
查看>>
使用SMACK堆栈进行快速数据分析(转载)
查看>>
水平垂直居中的那些事儿
查看>>
Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务系统的集成
查看>>
【iOS7开发笔记】tableview之Cell的重用原理
查看>>
什么是ODBC和JDBC?
查看>>
蓝桥杯- 入门训练 Fibonacci数列
查看>>