LeetCode第96题 Unique Binary Search Trees

Lumerical 教程目录,说明及个人感悟(共计138篇,持续更新中) Lumerical---教程说明及个人感悟 阅读详情

思路

二叉搜索树有个性质,就是左边的数都比根小,右边的数都比根大。另外,题目说明二叉树的节点是从1到n,所以我们能确定如果根为k,则根左边的数是1到k-1,根右边的数是k+1到n。还有一点技巧是,对于通过一个根来说,唯一二叉树的数量是其左子树的数量乘以右子树的数量,这是简单的乘法原理。并且,左右子树的形态数量是跟具体的数无关的,只跟这个树里有多少节点有关。而根可以选择从1到n的任意的数,唯一二叉树的总数,就是根为1到n的树相加。所以该问题化简为以k为根,其唯一左子树和右子树各有多少,这就是个动态规划的问题了。我们建立一个数组dp[i],代表节点数为i的唯一子树有多少个。显然dp[0]=dp[1]=1。

代码

public class Solution {
    public int numTrees(int n) {
        int[] dp = new int[n + 1];
        dp[0] = dp[1] = 1;
        //从节点数2开始计算到节点数为n的BST
        for(int i = 2; i < n + 1; i++){
            //计算根是第一个数的BST数量,直到根是最后一个数的BST数量,这里j可以理解为根左边的节点数
            for(int j = 0; j < i; j++){
                //有n的节点的BST一共有 G(n)=F(1,n-1)+F(2,n-1)+...+F(n-1,n-1)个
                //以i为根总共n个节点的BST有 F(i,n)=G(i-1)*G(i+1->n)个
                //BST形态数量之和一共有多少个节点有关 G(i+1->n)=G(n-i)
                //所以G(n)= G(0)*G(n-1)+G(1)*G(n-2)+...
                dp[i] += dp[j] * dp[i - j - 1];
            }
        }
        return dp[n];
    }

}

转载于 https://segmentfault.com/a/1190000003811919

YOLOv11改进策略【独家融合改进】| 模型轻量化二次改进:StarNet + FreqFusion,极限降参,适用专栏内所有轻量化模型 FreqFusion是一种旨在解决密集图像预测任务中特征融合问题。 阅读详情

相关推荐

风光储互补微电网在偏远地区的应用实践:从建模到仿真全解析

本文深入解析了风光储互补微电网在偏远地区的应用实践,从系统设计到仿真建模全流程。通过Simulink等工具进行动态仿真,验证了系统在多种工况下的可靠性,并结合实际案例展示了其显著的经济和环保效益。文章为从业者提供了从技术路径到实施优化的全面指导。

weixin_29047545的博客 270

力扣第96题 不同的二叉搜索树 c++ 二叉搜索树 动态规划 + 数学思维

相关标签给你一个整数n,求恰由n个节点组成且节点值从1到n互不相同的有多少种?返回满足题意的二叉搜索树的种数。

lenyan~的博客 340

基于Java的高校学生信息管理系统的设计与实现(论文+源码)

可以对本系统的数据进行良好的封装,Java可以对不想被访问的数据进行良好的隐藏,具备平台无关性,可移植,更加可靠与安全,具备多线程支持,进行网络交互更容易。它支持本系统的B/S模式。开发效益方面,本系统一旦开发成功并且面向社会,就会让大多数的学生教师体会到便利办公的乐趣,随之促进提高本系统的使用率和经济利润,所以在经济方面,对于零成本开发且高利润的学生管理系统是可行的。学生可以在学生端进行选课,查看自己的成绩,教师可以在教师端查看所任课程的选课情况,对学生成绩进行录入,对所任的课程进行结课等操作。

2402_82389843的博客 1092

[Leetcode] Unique Binary Search Trees 唯一二叉搜索树

Unique Binary Search Trees I && II 解法请见:https://yanjia.li/zh/2019/02/... Given n, how many structurally unique BST's (binary search trees) that store values 1.....

weixin_34406061的博客 206

【科研】Michaelis–Menten 曲线(米氏曲线)中反应速率的计算

Michaelis–Menten 曲线 米氏曲线 纵坐标 反应速率求值 朗伯比尔定律

weixin_42809675的博客 2万+

【LaTeX】IEEE会议模板中使用BibTex插入文献(解决报错:Something‘s wrong--perhaps a missing \item. \end{thebibliography}

使用IEEE会议论文LaTeX模板时遇到的一个错误,问题描述为:使用Texstudio编译LaTeX模板报错,报错信息提示为。出现的原因为IEEE会议论文模板自带的参考文献引用方式为手动插入,即不使用格式的参考文献,手动将参考文献调整为合适格式,然后粘贴到文本中,我准备将其换成方法引用参考文献。我的替换步骤为删除原始参考文献对应内容,即模板中的: 将以下函数添加到原始参考文献对应位置,对应上文新建的文件。 再次编译出现报错 删除文件夹中的文件 修改模板中的引用名称 引用方法为: 将 替换为 再次编译——

TangPlusHPC的博客 9907

LeetCode第95+96题

两题都是基本上是一样的,这里只贴出96题的原题: 给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ ...

qq_42203013的博客 2660

AI技术在电商中的实际应用

人工智能、电商、推荐系统、个性化、机器学习、深度学习 1. 背景介绍 电子商务行业近年来发展迅速,用户数量不断增长,商品种类日益丰富。然而,随着市场竞争的加剧,电商平台面临着如何提升用户体验、提高转化率、挖掘潜在商机等一系列挑战。人工智能(AI)技术作为一种新兴技术,凭借其强大的数

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 1740

leetcode 96:不同的二叉搜索树

使用动态规划的方式, 1 2 3 4 5  用数组a来存储个数   相当于是1为root  2 3 4 5形成一个数  所以是a[4] 2为root  前面1left 为a[1]  后面3 4 5为right a[3]  a[1]*a[3] 3为root 1 2left a[2]  4 5为right  a[2]   a[2]*a[2] ... a[5]=a[4]*2+a[1]*...

u013263891的博客 205

ADAS工作原理解析:如何通过智能技术提升驾驶安全

ADAS通过集成传感器、摄像头、雷达、SoC计算单元以及高效的数据融合技术,提供了一系列主动和被动安全功能,如自动刹车、车道保持、自适应巡航控制等。这些功能共同作用,不仅减少了交通事故的发生,还大幅提升了驾驶员的驾驶体验和安全性。随着技术的进步,ADAS的功能将越来越智能,最终迈向全自动驾驶的未来🚗💨。

weixin_43199439的博客 1149

【C#学习记录】如何让界面控件实现自适应布局(Winform)

小伙伴们大家好,我是雷工!在软件界面设计中,客户常常要求设计的界面可以随意缩放,缩放过程中,界面中的按钮等控件也会随着窗体变大缩小自动调整显示位置和尺寸大小。在C#的Winform窗体中如何实现这个效果,下面我们一起学习下。

做有价值的事,积累有价值的笔记! 1万+

Leetcode 96

给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 示例: 输入: 3 输出: 5 解释: 给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 ...

jhlovetll的博客 658

【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率 完整的代码,方可运行;可提供运行操作视频!适合小白!

订阅付费专栏Matlab(奶茶价版),可赠送奶茶价版付费专栏指定代码1份; 822

【leetcode每日刷题】96. Unique Binary Search Trees

https://leetcode.com/problems/unique-binary-search-trees/ 假设n个数字的BST个数为G(n),n个数字且第i个数字为根的BST个数为F(n,i),递推公式为F(n,i) = G(i-1) * G(n-i),那么从前往后求出G(n) = sum(G(i-1) * G(n-i)) class Solution(object): ...

菜菜鸟的博客 189

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【刷题】Leetcode 96. Unique Binary Search Trees

Example: Input: 3 Output: 5 Explanation: Given n = 3, there are a total of 5 unique BST’s: 1 3 3 2 1 \ / / / \ 3 2 1 1 3 2 / / ...

qq_19450921的博客 128

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

leetcode 96. Unique Binary Search Trees (好题)

Given n, how many structurally unique BST’s (binary search trees) that store values 1 … n? Example: Input: 3 Output: 5 Explanation: Given n = 3, there are a total of 5 unique BST’s: 1 3 3 ...

luoshaohong的博客 142

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Leetcode96. Unique Binary Search Trees

Leetcode96. Unique Binary Search Trees Given n, how many structurally unique BST’s (binary search trees) that store values 1 … n? Example: Input: 3 Output: 5 Explanation: Given n = 3, there are a to...

magic_jiayu的博客 165

LeetCode 96. Unique Binary Search Trees - 二叉搜索树(Binary Search Tree)系列题1

题目大意是给定一个正整数n,如果以值从1到n创建n个节点,那么这n个节点能构造出几科不一样的二叉搜索树。 二叉搜索的特点是左子树所有节点值不大于根节点值,右子树所有节点值不小于根节点值。如果我们从1~n范围内取一个值i作为根节点,那么左子树的节点个数就是i-1个, 右子树的节点个数是n-i个,如果能知道i-1个节点和n-i个节点分别能构造出多少棵二叉搜索树,那么二者相乘就是以i为根节点的二叉搜索树的个数。

hgq522的博客 400

leetcode 96. Unique Binary Search Trees

【代码】leetcode 96. Unique Binary Search Trees。

weixin_41554427的博客 255

[leetcode]96. Unique Binary Search Trees

[leetcode]96. Unique Binary Search Trees Analysis intern intern intern—— [每天刷题并不难0.0] Given n, how many structurally unique BST’s (binary search trees) that store values 1 … n? 动态规划解决,状态转移方程: DP[...

weixin_32135877的博客 151

LeetCode开心刷题三十六天——96. Unique Binary Search Trees??

96.Unique Binary Search Trees Medium 191974FavoriteShare Givenn, how many structurally uniqueBST's(binary search trees) that store values 1 ...n? Example: Input: 3 Output: 5 ...

weixin_30920513的博客 191

[一起来刷leetcode吧][20]--No.96 Unique Binary Search Trees

这篇文章是程序自动发表的,详情可以见这里 这是leetcode的第96题--Unique Binary Search Trees &emsp;&emsp;题目 Given n, how many structurally...

mbinary 168

算法总结(8)--House Robber系列,Unique Binary Search Trees系列,动归

主要是动态规划,二叉树的动态规划,递归求解198. House Robber213. House Robber II题目地址https://leetcode.com/problems/house-robber-ii/337. House Robber III题目地址https://leetcode.com/problems/house-robber-iii/96. Unique Binary Sea

master-dragon的专栏 704

96. Unique Binary Search Trees

【代码】96.UniqueBinarySearchTrees。

qq_40844444的博客 1044

leetcode 95. Unique Binary Search Trees II | 96. Unique Binary Search Trees

95. Unique Binary Search Trees II https://leetcode.com/problems/unique-binary-search-trees-ii/ 题解 题是好题,可惜我自己想不出来,后来偷看了答案。 难点在于在何处进行 list.add(root);,以及在修改树的形状时候,如何实现所谓的“深拷贝”,而不让树与树之间相互影响。 /** * Definition for a binary tree node. * public class TreeNode {

寒泉 4万+

LeetCode 95. Unique Binary Search Trees II

Description https://leetcode.com/problems/unique-binary-search-trees-ii/ 给定n,生成所有结构上唯一的二叉搜索树,并返回所有这些树的root。 Solving Ideas 与Unique Binary Search Trees类似,不同的是,这里需要构造出所有结构上唯一的BST 实现起来比较简单就是使用 递归 的方法,遍历所有...

wylu 317
上一篇: LeetCode第264题目 Ugly Number ll
下一篇: LeetCode第70题 Climbing Stairs
sipherhern
博客等级 码龄11年 2粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值