day41 动态规划part3

news2024/11/16 1:33:57

343. 整数拆分

中等
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。
返回 你可以获得的最大乘积 。
在这里插入图片描述

但是dp[0] 和 dp[1]为什么是0值得讨论,或者说不用讨论,压根就用不着这俩数,for (int j = 1; j < i; j++)可以改成for (int j = 1; j < i - 1; j++),然后初始化dp【2】= 1。for (int i = 3; i <= n; i++) i 直接从3开始算起。

// 更新的是dp[i], 而j比i小,dp[j]都是之前存好的,j根本不需要从0遍历到i-1。
class Solution {
    public int integerBreak(int n) {
        int dp[] = new int[n + 1];
        // 0 不是正整数,1 是最小的正整数,0 和 1 都不能拆分,因此 dp[0]=dp[1]=0

        for (int i = 2; i <= n; i++) {
            for (int j = 1; j < i; j++) {
                dp[i] = Math.max(dp[i], Math.max(j * (i - j), j * dp[i - j])); //dp[i - j]比dp[i]早几步算出,所以不必担心
                // 这里为什么还要比较dp[i]呢,是因为max(j*(i-j), j*dp[i-j])
                // 是相对于单独一个固定的j来说的,而j是从1到i-1的,
                // 所以要比较所有的j对应的dp[i],从中取最大的
            }
        }
        return dp[n];
    }
}

96. 不同的二叉搜索树

中等
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。
在这里插入图片描述
在这里插入图片描述

class Solution {
    public int numTrees(int n) {
        int[] dp = new int[n + 1]; // i个不同元素节点组成的二叉搜索树的个数为dp[i]
        dp[0] = 1;
        
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                //对于第i个节点,需要考虑1作为根节点直到i作为根节点的情况,所以需要累加
                //一共i个节点,对于根节点j时,左子树的节点个数为j-1,右子树的节点个数为i-j
                dp[i] += dp[j - 1] * dp[i - j];
            }
        }
        return dp[n];
    }
}

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

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

相关文章

Anybus获得IEC 62443-4-1工业网络安全标准ML3认证

HMS 工业网络旗下 Anybus 品牌已成功获得国际电工委员会&#xff08;IEC&#xff09;62443-4-1&#xff1a;安全产品开发生命周期要求&#xff08;一项工业网络安全标准&#xff09;的 3 级成熟度&#xff08;ML3&#xff09;认证。 该认证由全球知名的测试服务提供商 TV Rhein…

vite配置

"vite": "^5.1.4" resolve.alias&#xff1a;配置别名 1、执行npm install -D types/node 或者 yarn add types/node -D 2、以下配置代表访问src时可以用“”代替 resolve: {alias: {"": path.resolve(__dirname, "./src"),},}, 使…

龙芯2K1000双核处理器主板支持SATA固态盘,4G,GPS,WIFI蓝牙等接口

硬件配置 国产龙芯处理器&#xff0c;双核64位系统&#xff0c;板载2GDDR3内存&#xff0c;流畅运行Busybox、Buildroot、Loognix、QT5.12 系统! 接口全 板载4路USB HOST、2路千兆以太网、2路UART、2路CAN总线、Mini PCIE、SATA固态盘接口、4G接口、 GPS接口WIFI、蓝牙、Mini…

Java零基础入门到精通_Day 1

01 Java 语言发展史 Java语言是美国Sun公司(StanfordUniversity Network)在1995年推出的 计算机语言Java之父:詹姆斯高斯林(ames Gosling) 重要的版本过度&#xff1a; 2004年 Java 5.0 2014年 Java 8.0 2018年 9月 Java 11.0 &#xff08;目前所使用的&#xff09; 02 J…

Altair® Flux® 仿真软件加速电机、传感器和执行器设计

Altair Flux 仿真软件加速电机、传感器和执行器设计 Flux 着眼于机电设备的复杂性&#xff0c;旨在精确优化其性能、效率、尺寸、成本或重量&#xff0c;为终端用户带来更优质的创新的以及高价值的产品。Flux 可对静磁、交流稳态和瞬态条件&#xff0c;以及电热特性进行仿真。…

【办公类-40-02】20240311 python模仿PPT相册功能批量插入照片,更改背景颜色 (家长会系列二)

作品展示——用Python插入PPT相册 背景需求&#xff1a; 马上就要家长会&#xff0c;我负责做会议前的照片滚动PPT&#xff0c;通常都是使用PPT的相册功能批量导入照片&#xff0c; 生成给一个新的PPT文件 更改背景颜色 设置4秒间隔&#xff0c;应用到全部 保存&#xff0c;改…

Midjourney从入门到实战:图像生成命令及参数详解

目录 0 专栏介绍1 Midjourney Bot常用命令2 Midjourney绘图指令格式3 Midjourney绘图指令参数3.1 模型及版本3.2 画面比例3.3 风格化3.4 图片质量3.5 混乱值3.6 随机数种子3.7 重复贴图3.8 停止3.8 垫图权重3.9 提示词权重分割 0 专栏介绍 &#x1f525;Midjourney是目前主流的…

FastAPI 学习笔记

FastAPI 学习笔记 0. 引言1. 快速开始2. 升级示例代码 0. 引言 在 Python 这个充满活力的生态系统中&#xff0c;FastAPI 应运而生&#xff0c;它是一个现代的、快速的 Web 框架&#xff0c;专注于构建 RESTful API。 无论你是一名有经验的 Python 开发人员&#xff0c;还是一…

Flask python 开发篇:项目布局

一、背景简介 Flask应用程序可以像单个文件一样简单。就像上一篇简单实现一个接口一样&#xff0c;所有的东西都在一个python文件内&#xff1b; 然而&#xff0c;当项目越来越大的时候&#xff0c;把所有代码放在单个文件中就有点不堪重负了。 Python 项目使用 包 来管理代码…

2023年第三届中国高校大数据挑战赛第二场赛题D题赛题:行业职业技术培训能力评价(成品论文 代码与思路 视频讲解)

赛题 中国是制造业大国&#xff0c;产业门类齐全&#xff0c;每年需要培养大量的技能娴熟的技术工人进入工厂。某行业在全国有多所不同类型&#xff08;如国家级、省级等&#xff09;的职业技术培训学校&#xff0c;进行 5 种技能培训。学员入校时需要进行统一的技能考核&…

Python之禅——跟老吕学Python编程

Python之禅——跟老吕学Python编程 Python之禅1.**Beautiful is better than ugly.**2.**Explicit is better than implicit.**3.**Simple is better than complex.**4.**Complex is better than complicated.**5.**Flat is better than nested.**6.**Spare is better than den…

每日学习笔记:C++ STL 的List

定义 特点 操作函数 关于c.merge(c2)的分析&#xff0c;详见&#xff1a; 。。。。 C list merge()用法及代码示例 - 纯净天空 (vimsky.com) 异常安全性 运用实例

WPF Button去除按钮边框,添加下划线

<Button Width"45" Height"25" FontSize"20" Background"Transparent" BorderBrush"Transparent" Foreground"#FFC9A322" Click"Btn_Retry_Click" ><TextBlock><Underline>重试</…

Redis常见数据类型下

目录 Hash 哈希 常用指令 HSET HGET HEXISTS HDEL HKEYS HVALS HGETALL HMGET 内部编码 Hash类型和关系型数据库 缓存方式对比 List 列表 特点 常用命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP / RPOP LINDEX LINSERT 阻塞(BLOCK)版…

STM32存储左右互搏 SPI总线读写SD/MicroSD/TF卡

STM32存储左右互搏 SPI总线读写SD/MicroSD/TF卡 SD/MicroSD/TF卡是基于FLASH的一种常见非易失存储单元&#xff0c;由接口协议电路和FLASH构成。市面上由不同尺寸和不同容量的卡&#xff0c;手机领域用的TF卡实际就是MicroSD卡&#xff0c;尺寸比SD卡小&#xff0c;而电路和协…

中兴服务器R6900 G5实力领先,有效助力大模型训练

日前&#xff0c;中兴通讯推出专为大规模模型训练而设计的旗舰GPU服务器—R6900 G5。据悉&#xff0c;该中兴服务器具备卓越的计算性能、高速网络通信能力以及创新的能效表现&#xff0c;有望为人工智能和深度学习等领域带来全新的突破。 R6900 G5搭载了中兴通讯最新一代的英特…

开源的java视频处理库介绍

本文将为您详细讲解 Java 开源的视频处理库&#xff0c;以及它们的特点、区别和应用场景。Java 社区提供了多种视频处理库&#xff0c;这些库可以帮助您在 Java 应用程序中实现视频的录制、编辑、转换和播放等功能。 1. JCodec 特点 - 基于 Java 的视频编解码库。 - 支…

嵌入式C语言(八)

继续来看看新的属性&#xff1a;weak 这个符号知道是弱&#xff0c;但是这个是干嘛的呢&#xff1f;我们先来学习一下强符号和弱符号 强符号和弱符号 GNU C通过weak属性声明&#xff0c;**可以将一个强符号转换为弱符号。**使用方法如下。 void __attribute__((weak)) func(…

【OpenGL手册15】 多光源

目录 一、说明二、定向光三、点光源四、合并结果练习 一、说明 我们在前面的教程中已经学习了许多关于OpenGL中光照的知识&#xff0c;其中包括冯氏着色(Phong Shading)、材质(Material)、光照贴图(Lighting Map)以及不同种类的投光物(Light Caster)。在这一节中&#xff0c;我…

回收站删除的文件怎么恢复?这3个方法可行!

“求助&#xff01;回收站删除的文件还有没有机会恢复呀&#xff1f;我不小心将回收站清空了&#xff0c;但是有一些很重要的文件还在里面&#xff0c;应该怎么恢复它们啊&#xff01;” 在使用电脑的过程中&#xff0c;我们难免会遇到误删文件的情况。而当文件被删除并清空回收…