博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】96. Unique Binary Search Trees
阅读量:6823 次
发布时间:2019-06-26

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

题目如下:

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

Example:

Input: 3Output: 5Explanation: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

解题思路:一开始我觉得递归就行了,根节点可以填入的数为[1,2,3....n],如果选择该根节点值为2,那么其左边子树可以选择的就是[1],而右边子树可以选择的就是[3...n],所以根节点为2可以构成的树的总量就是左边子树的种数*右边子树的总数,依次累计根节点填入1~n的总数即可。

代码如下:

class Solution(object):    dic = {}    def recursive(self,nl):        if (nl[0],nl[-1]) in self.dic:            return self.dic[(nl[0],nl[-1])]        if len(nl) == 1:            self.dic[(nl[0], nl[-1])] = 1            return 1        count = 0        for i in range(len(nl)):            l1 = nl[:i] if i > 0 else []            l2 = nl[i+1:]            if len(l1) + len(l2) == 0:                count += 0            elif len(l1) == 0:                count += self.recursive(l2)            elif len(l2) == 0:                count += self.recursive(l1)            else:                count += (self.recursive(l1) * self.recursive(l2) )        self.dic[(nl[0], nl[-1])] = count        return count    def numTrees(self, n):        """        :type n: int        :rtype: int        """        self.dic = {}        return self.recursive(range(1,n+1))

 

转载于:https://www.cnblogs.com/seyjs/p/10220801.html

你可能感兴趣的文章
ET120以太网环回器介绍
查看>>
ActiveMQ快速入门
查看>>
java自学篇之程序设计基础
查看>>
swiper的基础使用(五)
查看>>
Windows Server 2012R2 Hyper-v之虚拟机复制(2)
查看>>
大数据各种实用网站
查看>>
win7安装laravel
查看>>
Oracle 各后台进程功能说明
查看>>
屏蔽storm ui的kill功能
查看>>
我的友情链接
查看>>
Oracle Decode函数的使用
查看>>
MSF学习笔记
查看>>
经典脚本案例--check memory
查看>>
20.31 expect脚本同步文件;20.32 expect脚本指定host和要同步的文件;20.33 构建文件分发系统;20.34...
查看>>
CentOS单用户与救援模式
查看>>
postfix 源码centos7上搭建及错误提示---亲测
查看>>
【Redis篇】Redis集群安装与初始
查看>>
jquery基础
查看>>
C# 集合已修改;可能无法执行枚举操作
查看>>
FSM Code Generator
查看>>