动态规划——整数拆分(python)

思路:

求一个整数,拆分后相乘的最大值。

定义dp数组为,dpi为将数i进行拆分后的相乘最大值。数i可以拆成两个,也可以拆成三个、四个......

拆成两个数:j+(i-j)

拆成多个数:j+dpi-j

状态转移dpi=max(dpi,j*(i-j),j*dpi-j)

复制代码
def IntegerBreak(n):
    dp=[0]*(n+1)
    dp[2]=1
    for i in range(1,n+1):
        for j in range(1,i):
            dp[i]=max(dp[i],j*(i-j),j*dp[i-j])  #和当前的dp[i]、j*(i-j),j*dp[i-j]比较
    print(dp[n])
    return 

def main():
    n=int(input())
    IntegerBreak(n)
if __name__=="__main__":
    main()
相关推荐
血色橄榄枝2 分钟前
基于用户注册信息的关键词检测挑战赛「Datawhale AI 夏令营」
人工智能·算法·机器学习
c238561 小时前
第二篇:《测试指挥官:可视化单题自测框架(含 assert 实操)》
java·数据库·c++·算法·安全性测试
六点_dn2 小时前
Linux学习笔记-printf命令
linux·运维·算法
遥感知识服务3 小时前
Sentinel-1 + DEM + FwDET + 随机森林:从快速水深初估到多因子误差修正
算法·随机森林·sentinel
来一碗刘肉面3 小时前
顺序表与链表的比较
数据结构·算法·链表
alphaTao3 小时前
LeetCode 每日一题 2026/7/13-2026/7/19
算法·leetcode
nnerddboy3 小时前
脑电信号处理实战 03 | 运动想象脑机接口入门:ERD/ERS、CSP 空间滤波与左右拳想象解码
算法·信号处理
梅雅达编程笔记4 小时前
编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)
开发语言·人工智能·python·numpy·pandas
zhz52144 小时前
GIS项目中空间参考转换与MBTiles偏移:问题成因、解法与避坑
python·vue·gis
QN1幻化引擎4 小时前
Dalin L — 我造了一门支持中文编程的语言,完整移植到 Rust 了
人工智能·算法·机器学习