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

相关推荐
We་ct7 分钟前
LeetCode 30. 串联所有单词的子串:从暴力到高效,滑动窗口优化详解
前端·算法·leetcode·typescript
-Try hard-9 分钟前
数据结构|概念及单向有头链表
数据结构·算法·vim
历程里程碑10 分钟前
子串----和为K的子数组
大数据·python·算法·leetcode·elasticsearch·搜索引擎·哈希算法
Aaron158812 分钟前
通信灵敏度计算与雷达灵敏度计算对比分析
网络·人工智能·深度学习·算法·fpga开发·信息与通信·信号处理
2301_7903009615 分钟前
C++中的命令模式
开发语言·c++·算法
2301_8223769417 分钟前
C++中的解释器模式
开发语言·c++·算法
xhbaitxl21 分钟前
算法学习day31-贪心算法
学习·算法·贪心算法
爱学习的阿磊21 分钟前
C++代码冗余消除
开发语言·c++·算法
YuTaoShao22 分钟前
【LeetCode 每日一题】2976. 转换字符串的最小成本 I
算法·leetcode·职场和发展
蒟蒻的贤1 小时前
滑动窗口策略
算法