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