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

343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分

设dp[i]表示拆分 数字i 出来的正整数相乘值最大的值

(i - j) * j,和dp[i - j] * j是获得dp[i]的两种乘法,在里面求最大值可以得到当前dp[i]的最大值,但是这一次的得出的最大值如果赋值给dp[i],可能没有没赋值的dp[i]大,具体例子的话,没想,只能说是覆盖了可能出现的问题。

所以是,dp[i] = max({dp[i], (i - j) * j, dp[i - j] * j});

初始化,dp[0]=0,dp[1]=1或者dp[2]=1都可以,我觉得初始化dp[2]=1比较合适一些,同意卡哥的看法。

先便利要求的 i,然后再遍历 求最大值的 j

class Solution {public:int integerBreak(int n) {vector<int> dp(n + 1);dp[2] = 1;for (int i = 3; i <= n ; i++) {for (int j = 1; j <= i; j++) {dp[i] = max(dp[i], max((i - j) * j, dp[i - j] * j));}}return dp[n];}};

96.不同的二叉搜索树

二叉搜索树是一个有序树

  • 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;
  • 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  • 它的左、右子树也分别为二叉排序树

设dp[i]的含义是以1....到 i 构成的二叉搜索树为dp[i]种。

dp[i]该怎么从其他状态推出来呢?

联系起n=1和n=2与n=3之间构成的不同的二叉搜索数的数量关系。(很抽象我也不知道怎么联系起来的)

抽象后发现dp[i]=以1.....到i的各个节点为头节点的不同二叉搜索树之和

比如dp[3] = dp[2] * dp[0] + dp[1] * dp[1] + dp[0] * dp[2],分别以1,2,3为头节点的不同二叉搜索树的数量加起来等于 以1....到 i 构成的二叉搜索树 总数 .

最后再抽象一层变成:(j从1开始)

dp[i] += dp[j - 1] * dp[i - j];

 初始化,依照二叉搜索树的定义,没有一个节点也可以算是二叉搜索树,所以

 dp[0] = 1;

 最后代码

class Solution {
public:int numTrees(int n) {vector<int> dp(n + 1);dp[0] = 1;for (int i = 1; i <= n; i++) {for (int j = 1; j <= i; j++) {dp[i] += dp[j - 1] * dp[i - j];}}return dp[n];}
};

 i 算从1开始推到i的dp[i]

 j 算从每一阶段的dp[i]内的1....i位置的不同头节点二叉搜索树之和,然后求出那个阶段的dp[i]

相关文章:

343. 整数拆分 96.不同的二叉搜索树

343. 整数拆分 设dp[i]表示拆分 数字i 出来的正整数相乘值最大的值 (i - j) * j,和dp[i - j] * j是获得dp[i]的两种乘法&#xff0c;在里面求最大值可以得到当前dp[i]的最大值&#xff0c;但是这一次的得出的最大值如果赋值给dp[i]&#xff0c;可能没有没赋值的dp[i]大&#…...

Vue3理解(9)

侦听器 1.计算属性允许我们声明性地计算衍生值,而在有些情况下&#xff0c;我们需要状态变化时执行一些方法例如修改DOM。 2.侦测数据源类型&#xff0c;watch的第一个参数可以市不同形式的‘数据源’&#xff0c;它可以市一个ref(包括计算属性)&#xff0c;一个响应式对象&…...

CRM系统中的销售漏斗有什么作用?

随着数字化发展&#xff0c;越来越多的企业使用CRM销售管理系统提高销售管理水平&#xff0c;提升盈利能力。在这个过程中&#xff0c;销售漏斗起到了非常重要的作用。下面就来说说&#xff0c;CRM系统中的销售漏斗有什么作用&#xff1f; 一、销售数据可视化 CRM销售漏斗通过…...

项目(模块1:用户登陆流程分析)

验证登陆点流程...

2023年中国商用服务机器人行业发展概况分析:国产机器人厂商向海外进军[图]

商用服务机器人指在非制造业的商用服务场景中&#xff0c;用来替代或辅助人类进行服务性质工作的机器人&#xff1b;常见的商用场景中&#xff0c;商用服务机器人主要分为终端配送类机器人&#xff0c;商用清洁类机器人&#xff0c;引导讲解类机器人等&#xff0c;被广泛应用在…...

千兆光模块和万兆光模块的适用场景有哪些

随着数字化和物联网的普及&#xff0c;对网络速度和带宽的要求也越来越高。千兆光模块和万兆光模块是两种常见的光模块&#xff0c;在不同的应用场景中&#xff0c;它们各具优势。下面我们来探讨一下千兆光模块和万兆光模块的主要适用场景。 首先是企业网络。千兆光模块常用于…...

2 files found with path ‘lib/armeabi-v7a/liblog.so‘ from inputs:

下图两个子模块都用CMakeLists.txt引用了android的log库&#xff0c;编译后&#xff0c;在它们的build目录下都有liblog.so的文件。 四个CPU架构的文件夹下都有。 上层模块app不能决定使用哪一个&#xff0c;因此似乎做了合并&#xff0c;路径就是报错里的哪个路径&#xff0c…...

qt中json类

目录 QJsonValue QJsonObject QJsonArray QJsonDocument 案例&#xff1a; Qt 5.0开始提供了对Json的支持&#xff0c;我们可以直接使用Qt提供的Json类进行数据的组织和解析&#xff0c;下面介绍4个常用的类。 QJsonValue 该类封装了JSON支持的数据类型。 布尔类型&#xf…...

NeurIPS 2023 | AD-PT:首个大规模点云自动驾驶预训练方案

概要 自动驾驶领域的一个长期愿景是&#xff0c;感知模型能够从大规模点云数据集中学习获得统一的表征&#xff0c;从而在不同任务或基准数据集中取得令人满意的结果。之前自监督预训练的工作遵循的范式是&#xff0c;在同一基准数据集上进行预训练和微调&#xff0c;这很难实…...

设计模式-结构型模式

文章目录 一、代理模式1.静态代理2.JDK动态代理3.CGLib动态代理4.三种代理对比 二、适配器模式1.类适配器模式2.对象适配器模式 三、装饰者模式静态代理和装饰者的区别 四、桥接模式五、外观模式六、组合模式七、享元模式 结构性模式描述如何将类或对象按某种布局组成更大的结构…...

BUUCTF学习(7): 随便注,固网杯

1、介绍 2、解题 11;show tables;# select * from 1919810931114514 concat(sel,ect from 1919810931114514 ) PEREPARE y from sql; ECCUTE y; -1; sEt sql CONCAt(se,lect * from 1919810931114514;)&#xff1b; prePare stmt from sql; EXECUTE stmt; # 结束...

【文末福利】巧用Chat GPT快速提升职场能力:数据分析与新媒体运营

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…...

院内导航系统厂商分析

随着医疗技术的不断发展和医院规模的不断扩大&#xff0c;院内导航系统成为了现代化医院不可或缺的一部分。患者就医时&#xff0c;一个高效便捷的导航系统可以帮助他们快速找到目标科室&#xff0c;同时也能提高医院的整体运营效率。本文将推荐五家在院内导航市场具有竞争力的…...

MES系统作业调度

一、MES系统作业调度的概念和功能 作业调度是指在制造过程中&#xff0c;根据生产计划和实际情况&#xff0c;合理安排和调度各项任务和资源&#xff0c;以达到最佳的生产效率和资源利用率。MES系统作业调度功能涉及以下方面&#xff1a; 1. 任务计划与分配&#xff1a;MES系…...

C++入门-引用

C入门-引用 前置知识点:函数栈帧的复用前置知识点:类型转换时产生的临时变量1.含义2.代码形式3.引用的价值1.传参数传参效率测试补充:C与Java中引用的区别 2.引用做返回值(前置知识:栈帧复用)1.传值返回2.传引用返回传引用返回并用引用接收3.静态变量传引用返回4.引用做返回值真…...

问题:Qt中软件移植到笔记本中界面出现塌缩

这是由于软件之前运行的设备DPI较低&#xff0c;移植到笔记本中显示设备DPI较高&#xff0c;导致窗体显示进行了缩放。 解决方案&#xff0c;在main.cpp中加入以下代码&#xff1a; if(QT_VERSION>QT_VERSION_CHECK(5,6,0)) QCoreApplication::setAttribute(Qt::AA_EnableHi…...

NDK编译脚本:Android.mk or CMakeLists.txt

本文来自于&#xff1a;https://github.com/xufuji456/FFmpegAndroid/blob/master/doc/NDK_compile_shell.md 前言 Android NDK以前默认使用Android.mk与Application.mk进行构建&#xff0c;但是在Android Studio2.2之后推荐使用CMake进行编译。 CMake是跨平台编译工具&#…...

低代码提速应用开发

低代码介绍 低代码平台是指一种能够帮助企业快速交付业务应用的平台。自2000年以来&#xff0c;低代码市场一直充斥着40大大小小的各种玩家&#xff0c;比如国外的Appian、K2、Pega Systems、Salesforce和Ultimus&#xff0c;国内的H3 BPM。 2015年以后&#xff0c;这个市场更是…...

Hi3516DV500 SVP_NNN添加opencv库记录

默认没有带opencv库&#xff0c;但是实际项目中需要用到opencv库&#xff0c;因此添加一下此库&#xff1b; 1&#xff1a;编译opencv源码&#xff0c;这里具体可以参考 海思Hi3516移植opencv以及错误调试_海思hi3516摄像头开发-CSDN博客 2&#xff1a;在工程的根目录下新建…...

BIO实战、NIO编程与直接内存、零拷贝深入剖析

原生 JDK 网络编程 BIO BIO&#xff0c;意为 Blocking I/O&#xff0c;即阻塞的 I/O。   BIO 基本上就是我们上面所说的生活场景的朴素实现。在 BIO 中类 ServerSocket 负责绑定 IP 地址&#xff0c;启动监听端口&#xff0c;等待客户连接&#xff1b;客户端 Socket 类的实例…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战

前言 现在我们有个如下的需求&#xff0c;设计一个邮件发奖的小系统&#xff0c; 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...