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之后一是不再进行拆分,二是继续拆分。(主要表现在递推公式中)

相关推荐
LYS_061815 小时前
C++学习(5)(函数 指针 引用)
java·c++·算法
紫陌涵光15 小时前
669. 修剪二叉搜索树
算法·leetcode
NGC_661115 小时前
二分查找算法
java·javascript·算法
ADDDDDD_Trouvaille15 小时前
2026.2.21——OJ95-97题
c++·算法
blackicexs15 小时前
第五周第七天
数据结构·算法
近津薪荼17 小时前
dfs专题10——全排列 II
算法·深度优先
Hcoco_me17 小时前
车载摄像头核心知识点结构化总结
人工智能·深度学习·数码相机·算法·机器学习·自动驾驶
紫陌涵光17 小时前
108.将有序数组转换为二叉搜索树
数据结构·算法·leetcode
iAkuya17 小时前
(leetcode)力扣100 75前K个高频元素(堆)
java·算法·leetcode