LeetCode 343. 整数拆分(动态规划)
LeetCode 343. 整数拆分

思路:
通过题目我们可以知道,一个正整数最少拆成2个数,最多拆成n个数,即可拆分的个数为2~n
若将拆除的第一个正整数令为k,那么剩下的数则为n-k,此时可以不拆分,也可以继续拆成2~n-k个,若我们可以计算出n-k拆分后的最大乘积,则在此基础上很容易得出n拆分后的最大乘积。此时容易想到使用动态规划的思想,通过不断求解子问题的最优解来确定原问题的最优解
那么,我们令dp[i]为正整数i拆分后的最大乘积(最少拆成2个,最多拆成i个)
dp[0],dp[1]无意义,不必初始化,则初始化dp[2]=1
此时可以将i从3开始遍历到n,来计算每个正整数拆分后的最大乘积dp[i]
在每个数i的遍历过程中,可以将i先拆分出j,则剩下的为i-j,则有
dp[i]=max(dp[i],max(dp[i-j]*j,(i-j)*j))
即,可以将i只拆分成j和i-j两个数,此时乘积为i*(i-j)
也可以将i先拆分成j,剩下的i-j继续拆分,此时乘积为j*dp[i-j]
取其中的最大乘积即为dp[i]
最后,dp[n]即为n拆分后所有数的最大乘积
代码:
#include<stdio.h>
#include<vector>
#include<string.h>
#include<algorithm>
using namespace std;class Solution {
public:int integerBreak(int n) {int dp[60];memset(dp, 0, sizeof(dp));dp[2]=1;for(int i=3;i<=n;++i)for(int j=1;j<i;++j)dp[i]=max(dp[i],max(dp[i-j]*j,(i-j)*j));return dp[n];}
};int main()
{int target = 10;Solution *solution = new Solution();int ans=solution->integerBreak(target);printf("%d\n",ans);free(solution);return 0;
}
总结: 做这道题时,没有想清楚dp[i]的定义,错误地认为dp[i]就是最大乘积(不论何种情况,是拆分,还是没拆分),所以写成了dp[i]=max(dp[i],dp[i-j]*j),没有想清楚dp[i]是拆分后的最大乘积,即这个代码表示的是拆分成3个或者更多个数后的最大乘积,把dp[i]拆分为两个数的情况给 遗漏了。。。
参考链接:https://blog.csdn.net/zhizhengguan/article/details/124453544
相关文章:
LeetCode 343. 整数拆分(动态规划)
LeetCode 343. 整数拆分 思路: 通过题目我们可以知道,一个正整数最少拆成2个数,最多拆成n个数,即可拆分的个数为2~n 若将拆除的第一个正整数令为k,那么剩下的数则为n-k,此时可以不拆分&#x…...
C++对象模型(12)-- 构造函数语义学:构造函数
1、默认构造函数生成规则 编译器不一定会为类生成默认构造函数,但在下列情况下,编译器会生成默认构造函数。 (1)该类没有任何构造函数,但包含一个类类型的成员变量,且成员变量所属的类有默认构造函数。 …...
[23] T^3Bench: Benchmarking Current Progress in Text-to-3D Generation
3D生成蓬勃发展,主流方法通过事例比较和用户调查来评价方法好坏,缺少客观比较指标;本文提出Bench,首次综合比较了不同生成方法;具体来说,本文设计了质量评估(Quality Assessment)和对…...
linux系统如何定时关机
立刻关机 poweroff 10分钟后自动关机 shutdown -h 10 如果希望终止上面执行的10分钟关机,则执行: shutdown -c 希望在22:00关闭计算机 shutdown -h 22:00...
构建高性能物联网数据平台:EMQX和CnosDB的完整教程
CnosDB 是一款高性能、高压缩率、高易用性的开源分布式时序数据库。主要应用场景为物联网、工业互联网、车联网和IT运维。所有代码均已在GitHub开源。本文将介绍如何使用EMQX 这一MQTT 服务器 CnosDB 构建物联网数据平台,实现物联网数据的实时流处理。 前言 在物联…...
【vim 学习系列文章 11 -- vim filetype | execute | runtimepath 详细介绍】
文章目录 filetype plugin indent on 什么功能?vim runtimepath 详细介绍vim 中 execute 命令详细介绍execute pathogen#infect() 详细介绍 filetype plugin indent on 什么功能? 在网上我们经常可以看到vimrc配置中有 filetype plugin indent on 这个配…...
[备忘]WindowsLinux上查看端口被什么进程占用|端口占用
Windows上 查看端口占用: netstat -aon|findstr <端口号> 通过进程ID查询进程信息 tasklist | findstr <上一步查出来的进程号> 图例: Linux 上 查看端口占用: netstat -tuln | grep <端口号> lsof -i:<端口号&…...
函数的扩展
文章目录 函数的扩展1.函数参数的默认值1.1 基本用法-- 参数变量是默认声明的,所以不能用 let或const 再次声明-- 使用参数默认值时,函数不能有同名参数1.2 与解构赋值默认值结合使用☆☆☆ 函数参数的默认值生效以后,参数解构赋值依然会进行…...
Cypress安装使用
node.js 安装使用Cypress总是会看见node.js,那就先看看node.js是什么。JavaScript以前运行需要在浏览器中(浏览器内置解释器),通过node.js框架内置v8引擎(也就是可以执行js脚本所需的工具),这样…...
怎么把图片改成jpg格式?
怎么把图片改成jpg格式?大家都知道,随着计算机被发明到现在已经存在了很多年,在这么多的的技术发展过程中,也形成了种类非常多的图片文件格式,例如平时我们能接触到的图片格式有jpg、png、gif、bmp、heic、tiff、jfif、…...
[一带一路金砖 2023 CTF]Crypto
题1 题目描述: from Crypto.Util.number import * from flag import flag import gmpy2 assert(len(flag)38) flag bytes_to_long(flag)p getPrime(512) q getPrime(512)e 304 enc pow(flag,e,p*q) print(p) print(q) print(enc) #9794998439882070838464987…...
FPGA【Verilog语法】
关键字: and always assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endprimitive endmodule endspecify endtable …...
Flume 整合 Kafka
1.背景 先说一下,为什么要使用 Flume + Kafka? 以实时流处理项目为例,由于采集的数据量可能存在峰值和峰谷,假设是一个电商项目,那么峰值通常出现在秒杀时,这时如果直接将 Flume 聚合后的数据输入到 Storm 等分布式计算框架中,可能就会超过集群的处理能力,这时采用 Kaf…...
VUE:侧边弹出栏组件,组件中有树状图,搜索框可筛选树状图节点,可收缩
作者:CSDN @ _乐多_ 本文记录了一个侧边弹出栏组件代码。代码即插即用。 弹出栏中有树状图,搜索框,可收缩。 其中,搜索框可筛选树状图节点。点击右侧小按钮可以收缩弹出框,点击X号也可以收缩弹出框。 文章目录 一、组件代码代码依赖element-plus库。且需要下载几个svg图…...
如何使用pytorch定义一个多层感知神经网络模型——拓展到所有模型知识
# 导入必要的库 import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader, random_split import torchvision.transforms as transforms import torchvision.datasets as datasets# 定义MLP模型 class MLP(nn.Module):def __…...
为什么引入SVG文件,给它定义属性不生效原理分析
背景: 我使用antd 的Icon组件引入SVG图片,但给svg图片定义styles样式时,不生效,为什么呢? 我们平时用antd组件库的 < ArrowRightOutlined style{{color: red }}>时为什么会生效呢,但我图一这样定义就…...
Integer包装类常用方法和属性
包装类 什么是包装类Integer包装类常用方法和属性 什么是包装类 Java 包装类是指为了方便处理基本数据类型而提供的对应的引用类型。Java 提供了八个基本数据类型(boolean、byte、short、int、long、float、double、char),每个基本数据类型对…...
基于Spring boot轻松实现一个多数据源框架
Spring Boot 提供了 Data JPA 的包,允许你使用类似 ORM 的接口连接到 RDMS。它很容易使用和实现,只需要在 pom.xml 中添加一个条目(如果使用的是 Maven,Gradle 则是在 build.gradle 文件中)。 <dependencies>&l…...
vue前端实现打印功能并约束纸张大小---调用浏览器打印功能打印页面部分元素并固定纸张大小
需求是打印指定div实现小票打印功能。调用浏览器的自带打印功能只能实现打印可视区域,所以这里采用截图新窗口打开打印去实现此需求。 1.安装html2canvas库实现截图功能 npm install html2canvas --save2.在需要进行截图和打印的组件中,引入html2canvas…...
音乐播放器蜂鸣器ROM存储歌曲verilog,代码/视频
名称:音乐播放器蜂鸣器ROM存储歌曲 软件:Quartus 语言:Verilog 代码功能: 设计音乐播放器,要求至少包含2首歌曲,使用按键切换歌曲,使用开发板的蜂鸣器播放音乐,使用Quartus内的RO…...
粉笔事业单位适合备考资格复审后面试吗?从材料确认、题型训练到岗位表达的评测
更新日期:2026年5月 很多事业单位考生在进入资格复审后,会搜索“粉笔事业单位怎么样”“粉笔事业单位面试适合资格复审后准备吗”“事业单位资格复审后怎么准备面试”。这些问题背后,真正关心的是:资格复审通过后距离面试通常不远…...
python系列【仅供参考】:避开这些坑!用Python爬取IEEE Xplore论文信息时,我的防反爬与数据清洗实战记录
避开这些坑!用Python爬取IEEE Xplore论文信息时,我的防反爬与数据清洗实战记录 避开这些坑!用Python爬取IEEE Xplore论文信息时,我的防反爬与数据清洗实战记录----------避开这些坑!用Python爬取IEEE Xplore论文信息时,我的防反爬与数据清洗实战记录 1. 反爬机制:不只是…...
Redis分布式锁进阶第六十八篇
一、本篇前置衔接 第六十八篇我们完成了全系列终局复盘,整理了故障排查SOP与企业级落地铁律。常规单资源锁、热点分片锁、隔离锁全部讲透,但真实复杂业务永远不是单一资源:下单要扣库存、扣优惠券、扣积分、冻结余额,多资源并行争…...
15分钟搞定国标视频监控平台部署,wvp-GB28181-pro让安防系统搭建如此简单!
15分钟搞定国标视频监控平台部署,wvp-GB28181-pro让安防系统搭建如此简单! 【免费下载链接】wvp-GB28181-pro 基于GB28181-2016、部标808、部标1078标准实现的开箱即用的网络视频平台。自带管理页面,支持NAT穿透,支持海康、大华、…...
5G网优路测数据分析方法:从数据采集到问题定位
路测(Drive Test)是5G网络优化最基础也是最关键的数据采集手段。本文从数据采集、分析方法、问题定位三个层面,系统讲解5G路测数据分析方法论。一、5G路测概述1.1 路测目的目的说明适用场景覆盖验证验证5G网络覆盖是否达标新站开通、优化后验…...
嵌入式通信系统抗干扰设计:从硬件防护到协议容错的实战指南
1. 项目概述:当通信遇上“嘈杂”的现实世界干了十几年嵌入式,从工业控制到智能家居,从车载网络到物联网终端,我踩过最多的坑,往往不是算法有多复杂,代码有多难写,而是通信链路在各种现实环境下的…...
失落大陆建模:亚特兰蒂斯数字重建的结构验证
一、项目背景与目标设定在数字孪生与虚拟考古技术飞速发展的当下,亚特兰蒂斯这一传说中失落大陆的数字重建,不仅是对古老神话的技术致敬,更是对复杂场景建模与结构验证能力的极致考验。本项目旨在依托Blender等3D建模工具,结合最新…...
AI智能体技能开发实战:从awesome-agent-skills到高效智能体构建
1. 项目概述:从技能清单到智能体构建的实战指南最近在折腾AI智能体(Agent)开发的朋友,估计都绕不开一个名字:awesome-agent-skills。这个由VoltAgent维护的开源项目,乍一看就是个GitHub上常见的“Awesome”…...
Python对象状态持久化:Memoripy库实现增量更新与断点续跑
1. 项目概述:一个让Python程序拥有“记忆”的魔法库如果你写过一些需要处理大量数据或者进行复杂状态管理的Python脚本,肯定遇到过这样的场景:程序运行到一半,因为网络波动、数据异常或者你手动中断,不得不从头再来。那…...
哔哩下载姬终极指南:5分钟掌握B站视频批量下载与高清画质处理
哔哩下载姬终极指南:5分钟掌握B站视频批量下载与高清画质处理 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等…...
