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

相关推荐
LSL666_7 分钟前
Redis值数据类型——hash
redis·算法·哈希算法·数据类型
喵喵蒻葉睦9 分钟前
力扣 hot100 滑动窗口最大值 单调双端队列 java 简单题解
java·数据结构·算法·leetcode·双端队列·滑动窗口·队列
样例过了就是过了11 分钟前
LeetCode热题100 搜索二维矩阵
数据结构·c++·算法·leetcode·矩阵
2401_8319207416 分钟前
C++与Qt图形开发
开发语言·c++·算法
Shining059618 分钟前
AI 编译器系列(四)《AI 编译器中的后端优化》
linux·服务器·人工智能·线性代数·算法·triton·ai编译器
像污秽一样36 分钟前
算法设计与分析-习题8.1
数据结构·算法·dfs·dp
飞天狗11138 分钟前
最小生成树算法
算法
H_老邪1 小时前
贪心算法的应用
算法·ios·贪心算法
葳_人生_蕤1 小时前
Hot100——739.每日温度
数据结构·算法
Elsa️7461 小时前
洛谷p1046:用一个题练习排序+二分查找
c++·算法