代码随想录算法训练营第四十三天 | 343. 整数拆分、96.不同的二叉搜索树

343. 整数拆分

代码随想录

视频讲解:动态规划,本题关键在于理解递推公式!| LeetCode:343. 整数拆分_哔哩哔哩_bilibili

解题思路

1. dp[i]对i进行拆分,得到的最大的乘积为dp[i]

2.递推公式

一个是j * (i - j) 直接相乘,拆为两个数

一个是j * dp[i - j],相当于是拆分(i - j),拆为三个或以上

dp[i] = max(上面两个)

3.初始化

dp[0] = 0;

dp[1] = 0;

dp[2] = 1;

4.遍历顺序从i=3开始遍历,直接到n,而j只需要遍历到i/2即可,因为乘积最大只会出现在数尽可能相同的情况下

class Solution {
public:int integerBreak(int n) {vector<int> dp(n+1);dp[0] =0;dp[1] = 0;dp[2] = 1;for(int i=3 ; i<=n ; i++){for(int j =1; j<=(i/2);j++ ){dp[i] = dp[i]>max(j*(i-j),j*dp[i-j]) ? dp[i] : max(j*(i-j),j*dp[i-j]) ;}}return dp[n];}
};
  • 时间复杂度:O(n^2)
  • 空间复杂度:O(n)

96.不同的二叉搜索树

代码随想录

视频讲解:动态规划找到子状态之间的关系很重要!| LeetCode:96.不同的二叉搜索树_哔哩哔哩_bilibili

解题思路

 当n为3的时候,那么就有头结点为1,2,3的情况

头1 = 左子树0节点元素情况 * 右子树2节点元素的情况

头2 = 左子树1节点 * 右子树1节点

头3 = 左子树2节点 * 右子树0节点

dp[3] = dp[0] * dp[2] + dp[1] * dp[1] + dp[2] * dp[0]

1.dp[i] 表示 i为节点个数,dp[i]表示有多少个二叉搜索树

2.例如以j为头结点,左子树有j-1个节点,右子树有i-j个节点,一共是i个节点(二叉搜索树的特性)

dp[i] += dp[j-1] * dp[i-j]  不同头结点的情况是相加起来的

3.初始化

dp[0] =1 空节点也算是一个子树,且是符合递推公式的

dp[1] =1

dp[i] =0

4.遍历顺序

dpi都是由比他小的节点个数推导而来

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

收获

动态规划太难了

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

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

相关文章

架构(十七)翻译监控

一、引言 作者最近做的一个功能是需要监控一个翻译转换&#xff0c;根据国家和语言进行分组&#xff0c;然后定时把监控情况放到ck里面。为什么是分组和定时监控呢&#xff1f;因为调用比较高的系统的qps在单机一万多&#xff0c;70台机器&#xff0c;可怕的高频调用注定他不能…

【喜报】科大睿智多家服务企业上榜2024年第四批DCMM名单

近日&#xff0c;DCMM官方平台发布通知公告&#xff0c;根据《数据管理能力成熟度评估工作管理办法(暂行)》的有关规定&#xff0c;经单位自愿申请&#xff0c;评估机构评估、专家评审及公示&#xff0c;下列27单位获得数据管理能力成熟度等级证书。小编祝贺多家服务企业上榜20…

前端破圈用Docker开发项目

为什么要用 Docker 开发 &#x1f914; 直接在系统上开发不香吗&#xff1f;香&#xff0c;但是 Docker 有下面4香 环境依赖管理&#xff1a;Docker 容器可以管理所有依赖项&#xff0c;例如前端里面的 node 和 npm 版本&#xff0c;不需要在本地安装和维护这些依赖项 隔离&a…

618入手不亏的好物有哪些?五款品质兼优的好物分享!

随着618购物狂欢节的到来&#xff0c;各位消费者们是否已经摩拳擦掌&#xff0c;准备开启一场购物盛宴&#xff1f;在这里&#xff0c;我们为您精心准备了一份不容错过的购物清单&#xff0c;无论您是科技迷、学生还是家居生活爱好者&#xff0c;都能找到心仪的好物。 1、学生…

经典文献阅读之--RepViT-SAM(利用语义分割提高NDT地图压缩和描述能力的框架)

0. 简介 Segment Anything Model (SAM) 最近在各种计算机视觉任务上展现了令人瞩目的零样本迁移性能 。然而&#xff0c;其高昂的计算成本对于实际应用仍然具有挑战性。MobileSAM 提出通过使用蒸馏替换 SAM 中的重图像编码器&#xff0c;使用 TinyViT&#xff0c;从而显著降低了…

在VSCode 中增加文件与文件夹的可辨识度

今天重新打开VSCode&#xff0c;打算新建一个项目做测试&#xff0c;看到VSCode中的文件与文件夹很不容易辨认&#xff0c;有时候容易导致一些误操作&#xff0c;需要做一些配置来改变。 效果图&#xff1a; 只需要做简单的2步就可以了。 1、安装插件 ⑴ 打开VSCode的扩展搜索并…

降雨量应急监测站的工作原理

TH-YJ3】雨量监测站是一种自动化的气象监测设备&#xff0c;主要用于实时、准确地监测和记录降雨量数据。它通过安装在特定位置的传感器和数据处理设备&#xff0c;连续监测降雨的强度、持续时间和降雨分布等信息&#xff0c;为气象、水文、环境等领域的研究和应用提供数据支持…

OpenBuild推出Sui Quiz任务,瓜分500SUI奖励

Quiz 功能 让用户可以&#xff1a; - 测试对某个知识点的理解力&#xff1b; 通过测试后获得 NFT 凭证&#xff0c;未来该凭证可用于求职认可、Bounty 任务、空投门槛。 Sui 是一个高性能的去中心化平台&#xff0c;旨在解决传统区块链系统中的可扩展性和效率问题。其独特的架…

福建聚鼎科技:装饰画生意到底有没有前景

在当今社会&#xff0c;随着人们生活水平的提高和审美需求的多样化&#xff0c;家居装饰行业迎来了新的发展机遇。装饰画作为家居装饰的重要组成部分&#xff0c;其市场前景备受关注。那么&#xff0c;装饰画生意到底有没有前景呢? 从市场需求的角度来看&#xff0c;装饰画市场…

视频监控业务平台LntonCVS运用国标协议对接视频汇聚管理综合平台应用方案

为了实现“以信息化推动应急管理能力现代化”的目标&#xff0c;应急管理部提出了加速现代信息技术与应急管理业务深度融合的计划。这一计划是国家加强和改进应急管理工作的关键举措&#xff0c;也是满足日益严峻的应急管理形势和人民群众不断增长的公共安全需求的紧迫需求。 为…

vue3 调用本地exe

1、注册表注册 在注册表中直接按照图2注册数据&#xff1b;也可以按照图3注册表的文件创建文档&#xff0c;然后点击打开&#xff0c;将会将注册表写入window系统。 图2 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\F1] "URL:F1 Protocol Handler" &q…

国产POE芯片,芯昇电子成熟量产POE芯片,在PSE端和PD端均成熟量产产品

随着技术的发展和市场的需求&#xff0c;国产POE芯片已经逐渐崭露头角。在POE技术领域&#xff0c;POE芯片分为供电设备PSE和受电设备PD&#xff0c;而选择参与802.3bt标准与以太网联盟徽标计划的厂商来生产这些芯片&#xff0c;可以确保在互操作性和合规性上更有把握。过去…

按组计算每列最大最小值并横向填入格中

第 1 列是分组列&#xff0c;之后是N个数据列。 ABCD1ZN_1N_2Q_122A100200-1003A101-10-2004A102201-1045A991993006B1000110013007B10041200-9008C2000-210022009C1900-2090-2180 现在要按第 1 列分组&#xff0c;每组横向的2N个列&#xff0c;依次是组内每个数据列的最大值…

华为昇腾310 ATC转换工具安装

参考: https://bbs.huaweicloud.com/blogs/393282?utm_source=zhihu&utm_medium=bbs-ex&utm_campaign=other&utm_content=content https://www.hiascend.com/document/detail/zh/canncommercial/601/inferapplicationdev/atctool/atctool_0004.html 1、基本工具…

K8s中配置使用ingress

Ingress是什么 在Kubernetes中&#xff0c;Ingress是一种用于将外部流量路由到集群内部服务的API对象。它通常与Ingress控制器一起使用&#xff0c;Ingress控制器负责根据Ingress规则路由外部流量到不同的服务上。   Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由…

Vue中的常用指令

Vue 会根据不同的【指令】&#xff0c;针对标签实现不同的【功能】 概念&#xff1a;指令&#xff08;Directives&#xff09;是 Vue 提供的带有 v- 前缀 的 特殊 标签属性。 为啥要学&#xff1a;提高程序员操作 DOM 的效率。 vue 中的指令按照不同的用途可以分为如下 6 大…

【Unity iOS打包】Library not loaded: ‘@rpath/AdjustSdk.framework/AdjustSdk‘

Unity打包iOS&#xff0c;XCode运行App黑屏卡死&#xff0c;报错&#xff1a; dyld[8412]: Library not loaded: rpath/AdjustSdk.framework/AdjustSdkReferenced from: /private/var/containers/Bundle/Application/C019F943-138F-4B33-AAC1-F18453F942D9/AnimalsBAMBAM.app/…

采用Java+ SpringBoot+ IntelliJ+idea开发的ADR药物不良反应监测系统源码

采用Java SpringBoot IntelliJidea开发的ADR药物不良反应监测系统源码 ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统有哪些应用场景&#xff1f; ADR药物不良反应监测系统具有广泛的应用场景&#xff0c;以下是一些主要的应用场景&#xff1a…

发现一个可以白嫖GPU的平台

网址 https://platform.virtaicloud.com/gemini_web/auth/register?inviteCodeb0322161368ead7f49716688486796dd 驱动云注册有100点的算力点&#xff0c;目前最便宜的机器大概是0.49算力点每小时&#xff0c;安装个sd或者简单学习训练数据的话&#xff0c;应该能用挺久的。…

【豆伴匠】L1-L12更新完,一站式解决文史积累、阅读、写作难题,弯道超车,寒假必备

合抱之木&#xff0c;生于毫末&#xff1b; 九层之台&#xff0c;起于垒土&#xff1b; 千里之行&#xff0c;始于足下。 豆伴匠是什么&#xff1f; 豆伴匠内容包括&#xff1a;人、文、史、作四个模块&#xff0c;全面覆盖文史知识及读写技巧。 目前&#xff0c;豆伴匠有L…