当前位置: 首页 > news >正文

不相同的二叉搜索树

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

示例 1:

输入:n = 3
输出:5

示例 2:

输入:n = 1
输出:1

提示:

  • 1 <= n <= 19
class Solution {
public:int numTrees(int n) {vector<int> dp(n + 1, 0); // 动态规划数组 dp,表示 i 个节点可以组成的二叉搜索树的数量dp[0] = 1; // 0 个节点时只有一种情况(空树)dp[1] = 1; // 1 个节点时也只有一种情况(只有根节点的树)for (int i = 2; i <= n; ++i) {  // 从 2 个节点开始逐步计算 dp[i]for (int j = 1; j <= i; ++j) {dp[i] += dp[j - 1] * dp[i - j]; // dp[j-1] 是左子树的可能数,dp[i-j] 是右子树的可能数}}return dp[n];}
};

二叉搜索树(BST)的性质

  • 每个节点的左子树的所有节点值都小于根节点。
  • 每个节点的右子树的所有节点值都大于根节点。

举例说明:

当 n=4时,所有可能的根节点分别是 1、2、3、4。

  • 选择 1 为根节点

    • 左子树有 0 个节点:dp[0] = 1
    • 右子树有 3 个节点:dp[3] = 5
    • 此时组合数为:1 * 5 = 5
  • 选择 2 为根节点

    • 左子树有 1 个节点:dp[1] = 1
    • 右子树有 2 个节点:dp[2] = 2
    • 此时组合数为:1 * 2 = 2
  • 选择 3 为根节点

    • 左子树有 2 个节点:dp[2] = 2
    • 右子树有 1 个节点:dp[1] = 1
    • 此时组合数为:2 * 1 = 2
  • 选择 4 为根节点

    • 左子树有 3 个节点:dp[3] = 5
    • 右子树有 0 个节点:dp[0] = 1
    • 此时组合数为:5 * 1 = 5

因此,dp[4] = 5 + 2 + 2 + 5 = 14

相关文章:

不相同的二叉搜索树

给你一个整数 n &#xff0c;求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种&#xff1f;返回满足题意的二叉搜索树的种数。 示例 1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;5示例 2&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;1提…...

毕业论文设计javaweb+VUE高校教师信息管理系统

目录 一、系统概述 二、功能详解 1. 教师管理 2. 部门管理 3. 奖惩管理 4. 业绩管理 5. 培训管理 6. 报表查询 三、总结 四、示例代码 1 前端VUE 2 后端SpringBootjava 3 数据库表 随着教育信息化的发展&#xff0c;传统的手工管理方式已经不能满足现代学校对教师…...

L0-Python-关卡材料提交

Python wordcount 函数的调试笔记 输入文本中的多行字符串处理 确保 text 使用了正确的三引号 “”"&#xff0c;以便读取完整的多行字符串&#xff0c;而不是单行。字符串分割&#xff1a;split() 使用 split() 默认按空格分割单词&#xff0c;确保分割后每个元素都是字…...

【unity进阶知识6】Resources的使用,如何封装一个Resources资源管理器

文章目录 一、Unity资源加载的几种方式1、Inspector窗口拖拽2、Resources3、AssetBundle4、Addressables&#xff08;可寻址资源系统&#xff09;5、AssetDatabase 二、准备三、同步加载Resources资源1、Resources.Load同步加载单个资源1.1、基本加载1.2、加载指定类型的资源1.…...

ThreadLocal内存泄漏分析

一、ThreadLocal内存泄漏分析 1.1 ThreadLocal实现原理 1.1.1、set(T value)方法 查看ThreadLocal源码的 set(T value)方法&#xff0c;可以发现数据是存在了ThreadLocalMap的静态内部类Entry里面 其中key为使用弱引用的ThreadLocal实例&#xff0c;value为set传入的值。核…...

第 30 章 XML

第 30 章 XML 1.IE 中的 XML 2.DOM2 中的 XML 3.跨浏览器处理 XML 随着互联网的发展&#xff0c;Web 应用程序的丰富&#xff0c;开发人员越来越希望能够使用客户端来操作 XML 技术。而 XML 技术一度成为存储和传输结构化数据的标准。所以&#xff0c;本章就详细探讨一下 Ja…...

VMware下的ubuntu显示文字太小的自适应显示调整

我的情况 我使用的是4K的32寸显示器&#xff0c;分辨率为 3840 x 2160&#xff0c;ubuntu版本为18.04&#xff0c;默认的情况下系统分辨率为 3466 x 1842。 ​ 此时&#xff0c;显示的文字很小&#xff0c;虽然可以看清&#xff0c;但也比较吃力&#xff0c;在VMware窗口…...

外贸网站怎么搭建对谷歌seo比较好?

外贸网站怎么搭建对谷歌seo比较好&#xff1f;搭建一个网站自然不复杂&#xff0c;但要想搭建一个符合谷歌seo规范的网站&#xff0c;那就要多注意了&#xff0c;你的网站做的再酷炫&#xff0c;再花里胡哨&#xff0c;但如果页面都是js代码&#xff0c;或者页面没有源代码内容…...

如何创建网络白名单

网络白名单&#xff08;Whitelist&#xff09;是指允许通过网络访问的特定设备、IP地址、应用程序或网站。与黑名单&#xff08;Blacklist&#xff09;相反&#xff0c;白名单机制默认阻止所有连接&#xff0c;只有在白名单中明确允许的访问才能通过。这种策略可以提高网络的安…...

前端动态创建svg不起效果?

document.createElement(path);诸如此类的创建一般都是不太行的 我在创建这个之后&#xff0c;虽然在网页上是有相应的结构&#xff0c;但是完全不显示 一般正确的创建方式为 document.createElementNS(http://www.w3.org/2000/svg,path);在使用document.createElementNS(“ht…...

三、Drf request对象

3.1django和drf中的request的区别 django中的request:用户请求对象和参数 drf中的request:将django中的request加了一层封装&#xff0c;又加了一些其它的参数 drf中的request._requestdjango中的request 3.2创建url路由和CBV class UserView(APIView):def get(self,requ…...

CMIS5.2_光模块切应用(Application Selection and Instantiation)

目录 重要概念 DP配置、应用声明、应用码的区别 Control Set Provision 和 Commission ApplyDPInit 和 ApplyImmediate 判断应用是否切换成功 以800G光模块的3个应用对应的DP配置举例 1*800G应用&#xff1a; 2*400G应用&#xff1a; 8*100G应用&#xff1a; 应用声明…...

网络安全 DVWA通关指南 DVWA Weak Session IDs(弱会话)

DVWA Weak Session IDs&#xff08;弱会话&#xff09; 文章目录 DVWA Weak Session IDs&#xff08;弱会话&#xff09;Low LevelMedium LevelHigh LevelImpossible Level 参考文献 WEB 安全靶场通关指南 相关阅读 Brute Force (爆破) Command Injection&#xff08;命令注入…...

828华为云征文|华为云 Flexus X 实例初体验

一直想有自己的一款的服务器&#xff0c;为了更好的进行家庭娱乐&#xff0c;甚至偶尔可以满足个人搭建开发环境的需求&#xff0c;直到接触到了华为云 Flexus X 云服务器。Flexus 云服务器 X 实例是面向中小企业和开发者打造的轻量级云服务器。提供快速应用部署和简易的管理能…...

欧科云链OKLink相约TOKEN2049:更全面、多元与安全

过去几日&#xff0c;OKLink 与全球 Web3 从业者与爱好者们相约狮城。在多场激动人心的活动上分享了我们的产品进展、有关于链上数据的专家观点以及打磨产品的经验。同时也听到了很多来自行业的宝贵声音。跟随我们的脚步&#xff0c;捕捉这充实一周的精彩瞬间&#xff1a; 1、…...

遥感影像-语义分割数据集:云数据集详细介绍及训练样本处理流程

原始数据集详情 简介&#xff1a;该云数据集包括150张RGB三通道的高分辨率图像&#xff0c;在全球不同区域的分辨率从0.5米到15米不等。这些图像采集自谷歌Earth的五种主要土地覆盖类型&#xff0c;即水、植被、湿地、城市、冰雪和贫瘠土地。 KeyValue卫星类型谷歌Earth覆盖区…...

【有啥问啥】SimAM(Similarity-Aware Activation Module)注意力机制详解

SimAM&#xff08;Similarity-Aware Activation Module&#xff09;注意力机制详解 引言 在计算机视觉领域&#xff0c;注意力机制通过引导模型关注图像中的关键区域&#xff0c;显著提升了模型处理和理解图像的能力。SimAM&#xff08;Similarity-Aware Activation Module&a…...

鸿蒙应用开发,如何保存登录信息

在鸿蒙应用开发中&#xff0c;保存登录信息是实现用户自动登录、个性化展示等功能的基础。以下是一些常用的保存登录信息的方法&#xff1a; 一、全局状态管理 对于简单的应用&#xff0c;可以在全局范围内定义一个类&#xff08;如UserManager&#xff09;&#xff0c;使用单…...

★ C++进阶篇 ★ map和set

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C进阶篇第四章----map和set ~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页&#xff1a;椎名澄嵐-CSDN博客 C基础篇专栏&#xff1a;★ C基础篇 ★_椎名澄嵐的博客-CSDN博…...

Python知识点:如何使用Nvidia Jetson与Python进行边缘计算

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 如何使用Nvidia Jetson与Python进行边缘计算 Nvidia Jetson平台是专为边缘计算设…...

动态分配内存

目录 前言 一.malloc,free函数 1.malloc,free函数原型 2.使用方法 3.具体实例 4.注意事项 二.calloc函数 1.calloc函数原型 2.主要特点 3.使用案例 三.realloc函数 1.realloc函数原型 2.使用案例 3.注意事项 前言 动态内存是指在程序运行时&#xff0c;按需分配和…...

Unity Input System自动生成配置

参考视频 创建及配置新输入系统 New Input System&#xff5c;Unity2022.2 最新教程《勇士传说》入门到进阶&#xff5c;4K_哔哩哔哩_bilibili ProjectSettings设置 Unity编辑器菜单栏选择Edit->Project Settings->Player->Other Settings,将Api Compatibility Level…...

【Windows】在任务管理器中隐藏进程

在此前的一篇&#xff0c;我们已经介绍过了注入Dll 阻止任务管理器结束进程 -- Win 10/11。本篇利用 hook NtQuerySystemInformation 并进行断链的方法实现进程隐身&#xff0c;实测支持 taskmgr.exe 的任意多进程隐身。 任务管理器 代码&#xff1a; // dllmain.cpp : 定义 …...

【TypeScript学习】TypeScript基础学习总结二

主要记录ts中的类、接口与泛型 1.类 无论是在哪种语言中&#xff0c;类都是面向对象编程(OOP)的一个主要实现方式。能够实现代码更加灵活&#xff0c;更具有结构化。类作用都是提供一个模板&#xff0c;通过类可以创建多个具有相同结构的对象。 // 类的定义&#xff0c;与对象…...

中国电信解锁万亿参数大模型:TeleAI的创新与突破

首个由万卡集群训练出来的万亿参数大模型&#xff0c;已被一家央企解锁。 具体而言&#xff0c;为了推动纯国产人工智能的探索&#xff0c;带来这条新路径的正是中国电信人工智能研究院&#xff08;TeleAI&#xff09;。 该研究院由中国电信集团的CTO、首席科学家兼院长李学龙…...

戴尔PowerEdge R840服务器亮黄灯 不开机

最近接修到一台东莞用户的DELL PowerEdge R840 服务器因为意外断电后&#xff0c;无法正常开机的问题&#xff0c; 大概故障现象是 插上电源线 按卡机按钮无响应&#xff0c;无法开机&#xff0c;无显示输出&#xff0c;工程师到现场检修&#xff0c;经过idrac中日志分析&#…...

【前端安全】js逆向之微信公众号登录密码

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 随着发展&#xff0c;越来越多的登录页面添加了密码加密的措施&#xff0c;使得暴力破解变得不在简单&a…...

C# 泛型使用案例_C# 泛型使用整理

一、系统自带常用的泛型 1.字典&#xff0c;集合 //字典 Dictionary<string, int> dic new Dictionary<string, int>(); //泛型集合 List<int> list new List<int>(); 2.泛型委托&#xff0c;输入参数&#xff0c;输出参数 //泛型 委托---输出参…...

Docker 安装 Citus 单节点集群:全面指南与详细操作

Docker 安装 Citus 单节点集群&#xff1a;全面指南与详细操作 文章目录 Docker 安装 Citus 单节点集群&#xff1a;全面指南与详细操作一 服务器资源二 部署图三 安装部署1 创建网络2 运行脚本1&#xff09;docker-compose.cituscd1.yml2&#xff09;docker-compose.cituswk1.…...

Arthas redefine(加载外部的.class文件,redefine到JVM里 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.3 redefine&#xff08;加载外部的.class文件&#xff0c;redefine到JVM里 &#xff09;举例1&#xff1a;加载新的代码&#xff0c;jad/mc 命令使用举例2&#xff1a;上传 .class 文件到服务器的技巧 本人其他相关文章…...

数据库跟网站内容/网站模版

1. UISearchDisplayController.searchResultsTableView 的frame指定只有在 didShowSearchResultsTableView委托调用之后&#xff0c;反正我觉得系统会改动它的大小位置&#xff0c;所以我不得不写了一个重新定位它的frame&#xff0c;来覆盖系统的默认设置。 2. UISearchDis…...

wordpress显示指定分类目录/宁波seo外包推广软件

前段时间组织优化我们的原生模块 API&#xff08;iOS、Android 模块封装成 JavaScript 接口&#xff09;&#xff0c;于是学习了几篇 JavaScript API 设计的文章&#xff0c;尽管是旧文&#xff0c;但受益匪浅&#xff0c;这里记录一下。 好的 API 设计&#xff1a;在自描述的同…...

linux 建立网站/女孩子做运营是不是压力很大

oracle全文索引和定时任务--首先检查数据库中是否有CTXSYS用户和CTXAPP脚色。--如果没有这个用户和角色&#xff0c;意味着你的数据库创建时未安装intermedia功能。--你必须修改数据库以安装这项功能。--用sys用户为了用户gzinfo分配权限grantCTXAPP togzinfo;grantexecuteonct…...

怎么根据别人的网站做自己的网站/网络销售 市场推广

1、IoC(控制反转)是Spring容器的核心&#xff0c;AOP、声明式事务等都基于IoC。2、IoC:某一接口的实现类不由调用类来决定&#xff0c;而是交给第三方来决定。控制权翻转到第三方。3、由于IoC这个词不够见名知意&#xff0c;后来软件界泰斗级别的人物Martin Fowler提出了ID(依赖…...

给宝宝做衣服网站好/微信推广

startsWith()方法 startsWith()方法用来判断当前字符串是否是以另外一个给定的子字符串“开头”的&#xff0c;根据判断结果返回 true 或 false 参数: str.startsWith(searchString [, position]) searchString 要搜索的子字符串 position 在 str 中搜索 searchString 的…...

广东网站建设服务公司/网络广告营销策略

原标题&#xff1a;高校教师试讲答辩面试考试流程1&#xff0e;工作人员 2 提前 10 分钟从候考室引领专技岗(教师)应聘人员进入备考室。由面试主考官一一验封《各专技岗(教师)命题专家指定的 1 个知识点档案袋》&#xff0c;在考场监督人员和应聘人员等共同监督下&#xff0c;当…...