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

相关推荐
Dave.B1 天前
【VTK核心过滤器详解】:vtkCleanPolyData 多边形数据清洗实战指南
算法·vtk
AiXed1 天前
PC微信 device uuid 算法
前端·算法·微信
@木辛梓1 天前
指针,数组,变量
开发语言·c++·算法
苏纪云1 天前
数据结构期中复习
数据结构·算法
PPT百科1 天前
PPT图标大小怎么调才协调?与文字的比例是多少 ?
经验分享·职场和发展·powerpoint·职场·ppt
flashlight_hi1 天前
LeetCode 分类刷题:141. 环形链表
javascript·算法·leetcode
初听于你1 天前
Java五大排序算法详解与实现
数据结构·算法·排序算法
多多*1 天前
牛客周赛 Round 117 ABCDE 题解
java·开发语言·数据结构·算法·log4j·maven
liu****1 天前
13.POSIX信号量
linux·开发语言·c++·算法·1024程序员节
熬夜敲代码的小N1 天前
仓颉ArrayList动态数组源码分析:从底层实现到性能优化
数据结构·python·算法·ai·性能优化