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

相关推荐
2401_85127299几秒前
C++中的模板方法模式
开发语言·c++·算法
2401_894241921 分钟前
C++中的策略模式进阶
开发语言·c++·算法
爱丽_7 分钟前
G1 深入:Region、Remembered Set、三色标记与“可预测停顿”
java·数据库·算法
sprite_雪碧7 分钟前
简单模拟问题
算法
2401_874732538 分钟前
C++中的装饰器模式
开发语言·c++·算法
j_xxx404_11 分钟前
力扣--分治(快速排序)算法题II:数组中的第K个最大元素(Top K问题),LCR159.库存管理III
数据结构·c++·算法·leetcode
ysa05103012 分钟前
运用map优化多次查询【Kadomatsu 子序列】
数据结构·c++·笔记·算法
_饭团18 分钟前
C 语言内存函数全解析:从 memcpy 到 memcmp 的使用与模拟实现
c语言·开发语言·c++·学习·算法·面试·改行学it
24白菜头20 分钟前
第十五届蓝桥杯C&C++大学B组
数据结构·c++·笔记·学习·算法·leetcode·蓝桥杯
2401_8845632429 分钟前
C++中的观察者模式实战
开发语言·c++·算法