[力扣题解] 96. 不同的二叉搜索树

news2024/11/24 12:29:51

题目:96. 不同的二叉搜索树

思路

动态规划
f[i]:有i个结点有多少种二叉搜索树
状态转移方程
n=3为例:
请添加图片描述

1为头节点,左子树有0个结点,右子树有2个结点;
2为头节点,左子树有1个结点,右子树有1个结点;
3为头节点,左子树有2个结点,右子树有0个结点;

代码

我写的

可能逻辑不通顺,毕竟是直接上手调试的;

// f[i] : 由i个结点组成的blabla有多少种
// f[i] = f[]
class Solution {
public:
    int numTrees(int n) {
        int f[25] = {0};
        int i, j;
        f[0] = 1;
        f[1] = 1;
        // f[2] = 2;
        // f[3] = 5;
        for(i = 2; i <= n; i++)
        {
            for(j = 0; j < i; j++)
            {
                f[i] += f[j] * f[i-j-1];
            }
            // 左子树有 i-1 个,右子树有 j-i 个;
        }
        return f[n];
    }
};

代码随想录

class Solution {
public:
    int numTrees(int n) {
        int i, j;
        int f[25] = {0};
        f[0] = 1;
        for(i = 1; i <= n; i++)
        {
            // 谁做头节点
            for(j = 1; j <= i; j++)
            {
                // 左子树有 j-1 个结点, 右子树有 i-j 个结点
                f[i] += f[j-1] * f[i-j];
            }
        }
        return f[n];
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1672983.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单文件EXE绿色软件制作工具​Enigma Virtual Box​利用 EnigmaVB 打包 Qt 应用程序

功能描述&#xff1a;详细介绍如何利用 EnigmaVB 打包 Qt 应用程序&#xff0c;从 EnigmaVB 软件下载、安装&#xff0c;到如何使用&#xff0c;一步步教你走进 EnigmaVB 软件&#xff0c;最后还介绍了一款针对 Enigma Virtual Box 制作的单文件程序进行解包的工具 EnigmaVBUnp…

git-将本地项目上传到远程仓库

在gitee中新建一个远程仓库。 填写对应内容。 打开你想上传的文件夹&#xff0c;比如我想上传yuanshen 右击&#xff0c;打开git bash 输入git init初始化仓库 git init 添加项目所有文件 git add . 将添加的文件提交到本地仓库&#xff08;提交说明必填&#xff09; git …

61、内蒙古工业大学、内蒙科学技术研究院:CBAM-CNN用于SSVEP - BCI的分类方法[脑机二区还是好发的]

前言&#xff1a; 之前写过一篇对CBAM模型改进的博客&#xff0c;在CBAM中引入了ECANet结构&#xff0c;对CBAM中的CAM、SAM模块逐一改进&#xff0c;并提出ECA-CBAM单链双链结构&#xff0c;我的这个小的想法已经被一些同学实现了&#xff0c;并进行了有效的验证&#xff0c;…

3.运算符详解(java)

算术运算符 基本四则运算符&#xff1a;加减乘除模&#xff08;、-、*、/、%&#xff09; 注意&#xff1a; 都是二元运算符&#xff0c;使用时必须要有左右两个操作数 int / int 结果还是int类型&#xff0c;而且会向下取整 I.做除法和取模时 右操作数不能为0 II. %不仅可…

福派斯鲜肉狗粮大揭秘,狗狗吃了都说好!

狗粮哪个牌子好&#xff1f;我强烈推荐福派斯鲜肉狗粮&#xff01;在众多狗粮品牌中&#xff0c;福派斯以其高品质、营养均衡以及独特的产品特点&#xff0c;受到了广大宠物主人的一致好评。 (1) 福派斯鲜肉狗粮的配方表透露出其对于原料选择的严谨和用心。高达75%的鲜肉含量&a…

探索美国动态IP池:技术赋能下的网络安全新篇章

在数字化飞速发展的今天&#xff0c;网络安全成为了各行各业关注的焦点。特别是在跨国业务中&#xff0c;如何保障数据的安全传输和合规性成为了企业面临的重要挑战。美国动态IP池作为一种新兴的网络技术&#xff0c;正逐渐走进人们的视野&#xff0c;为网络安全提供新的解决方…

学习古琴律学的好东西,帮您从基因里学古琴

《从基因里学懂古琴》是一本关于古琴律学的著作&#xff0c;作者通过基因的角度来解读古琴音乐的奥秘和美妙。古琴作为我国传统文化的瑰宝之一&#xff0c;具有悠久的历史和独特的音乐风格&#xff0c;但其律学原理一直以来都是一个谜。本书从基因的角度探讨了古琴音乐的律学特…

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版

Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版 Office LTSC 2024 for Mac 请访问原文链接&#xff1a;Microsoft Office for Mac 2024 (Office 365) 16.84 Universal 预览版&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&a…

【Spring Boot】 深入理解Spring Boot拦截器:自定义设计与实现全攻略

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章&#xff1a;【Spring Boot】 深入理解Spring Boot拦截器&#xff1a;自定义设计与实现全攻略 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 SpringBoot统⼀功能处理一…

机器学习中表格数据预处理

目录 缺失值处理 在dataframe中进行填补 使用模型填补缺失值&#xff08;随机森林&#xff09; 异常值 数据无量纲化 中心化 数据归一化 数据标准化 缩放处理 转换数据类型 文本—>数值preprocessing.LabelEncoder&#xff1a;标签专用&#xff0c;能够将分类转换为…

计算机毕业设计 | SpringBoot健身房管理系统(附源码)

1&#xff0c;项目背景 随着人们生活水平的提高和健康意识的增强&#xff0c;健身行业逐渐兴起并迅速发展。而现代化的健身房管理系统已经成为健身房发展的必备工具之一。传统的健身房管理方式已经无法满足现代化健身房的需求&#xff0c;需要一种更加高效、智能、安全的管理系…

【Vue探索之旅】初识Vue

文章目录 前言 渐进式框架​ 入门案例 完结撒花 前言 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#x…

深入了解 MyBatis 插件:定制化你的持久层框架

序言 MyBatis 是一个流行的 Java 持久层框架&#xff0c;它提供了简单而强大的数据库访问功能。然而&#xff0c;有时候我们需要在 MyBatis 中添加一些自定义的功能或行为&#xff0c;来满足特定的需求。这时&#xff0c;MyBatis 插件就发挥了重要作用。本文将深入探讨 MyBati…

Cweek1

C语言学习 一.初识C语言 1.如何写C代码 ①创建工程 ②添加源文件&#xff1a;c文件&#xff1a;源文件&#xff0c;h文件&#xff1a;头文件 代码实例&#xff1a; main函数是程序的入口&#xff0c;有且仅有一个 在C语言中&#xff0c;#include <stdio.h> 是一个预…

Linux进程(一) -- 介绍进程

计算机的系统架构 用户部分 这是用户直接与计算机交互的部分&#xff0c;包括以下三种操作&#xff1a; 指令操作&#xff1a;用户通过命令行界面&#xff08;CLI&#xff09;输入指令来操作计算机。开发操作&#xff1a;开发人员编写和调试程序代码&#xff0c;与计算机系统…

4.分支与循环

逻辑控制分为三部分&#xff1a; 1.顺序结构---》顺序执行代码 2.分支结构---》if语句和switch语句 3.循环执行---》for语句 while语句 和do while语句 顺序结构比较简单&#xff0c;按照代码书写的顺序一行一行执行 分支结构&#xff08;if、switch语句&#xff09; 也就是…

网络安全快速入门(十二) linux的目录结构

我们前面已经了解了基础命令&#xff0c;今天我们来讲讲linux中的目录结构&#xff0c;我们在了解linux的目录结构之前&#xff0c;我们先与Windows做一个对比 12.1linux和windows的目录结构对比 在之前认识liunx的章节中&#xff0c;我们已经简单说明了linux和window的目录结构…

2024年蓝桥杯——复盘

1、握手问题 知识点&#xff1a;模拟 这道题很简单。但是不知道考试的时候有没有写错。一开始的43个人握手&#xff0c;仅需要两两握手&#xff0c;也就是从42个握手开始&#xff0c;而非43.很可惜。这道题没有拿稳这5分。也很有可能是这5分导致没有进决赛。 总结&#xff1a…

LLVM中期报告

1&#xff0e;主要开展的工作 研究对LLVM IR层面进行代码混淆&#xff0c;分析IR的指令 &#xff0c;并且实现混淆 从LLVM代码混淆的角度出发&#xff0c;函数之间的正常调用构成了待混淆程序的原始控制流&#xff0c;不同的基础代码块构成了一个个的函数&#xff0c;每个基础…

Edge浏览器自动翻译功能按钮不见了

前言&#xff1a; 平时偶尔会用到Edge的页面翻译功能&#xff0c;使用挺方便。突然发现Edge浏览器的翻译功能不见 了。如下图所示&#xff1a; 解决思路&#xff1a; 1、从网上找各种解决方案也没有解决&#xff0c;其中有一个说到点右上角的三个点 2、点击设置…