leetcode:343.整数拆分

解题思路:

拆分的越多越好(暂且认为),尽可能拆成m个近似相等的数,会使得乘积最大

dp含义:将i进行拆分得到最大的积为dp[i]

递推公式:j x dp[i-j](固定j,只通过凑dp[i-j]进而实现所有情况)

初始化:dp[0] = 0,dp[1] = 0,dp[2] = 1

遍历顺序:根据递推公式,dp[i] = max(dp[i],max(dp[i-j]*j,(i-j)*j)),所以是从前往后遍历,先有dp[i-j]再有dp[i]。

代码实现:

有两种方案:i拆分出来j之后一是不再进行拆分,二是继续拆分。(主要表现在递推公式中)

相关推荐
big_rabbit05021 分钟前
JVM堆内存查看命令
java·linux·算法
m0_662577973 分钟前
C++中的RAII技术深入
开发语言·c++·算法
旖-旎3 分钟前
二分查找(点名)(8)
c++·算法·二分查找·力扣
承渊政道6 分钟前
【优选算法】(实战体验滑动窗口的奇妙之旅)
c语言·c++·笔记·学习·算法·leetcode·visual studio
lemonth8 分钟前
图形推理----
人工智能·算法·机器学习
2401_8914821719 分钟前
C++代码复杂性分析
开发语言·c++·算法
keep intensify20 分钟前
单词搜索-
算法·深度优先
zx_zx_12320 分钟前
定长滑动窗口和不定长滑动窗口
数据结构·算法
mjhcsp27 分钟前
C++ 梯度下降法(Gradient Descent):数值优化的核心迭代算法
开发语言·c++·算法
七禾页丫30 分钟前
面试记录19 软件设计师
面试·职场和发展