mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 12:15:58 +08:00
@ -227,7 +227,34 @@ class Solution:
|
|||||||
return dp[n]
|
return dp[n]
|
||||||
```
|
```
|
||||||
Go:
|
Go:
|
||||||
|
```golang
|
||||||
|
func integerBreak(n int) int {
|
||||||
|
/**
|
||||||
|
动态五部曲
|
||||||
|
1.确定dp下标及其含义
|
||||||
|
2.确定递推公式
|
||||||
|
3.确定dp初始化
|
||||||
|
4.确定遍历顺序
|
||||||
|
5.打印dp
|
||||||
|
**/
|
||||||
|
dp:=make([]int,n+1)
|
||||||
|
dp[1]=1
|
||||||
|
dp[2]=1
|
||||||
|
for i:=3;i<n+1;i++{
|
||||||
|
for j:=1;j<i-1;j++{
|
||||||
|
// i可以差分为i-j和j。由于需要最大值,故需要通过j遍历所有存在的值,取其中最大的值作为当前i的最大值,在求最大值的时候,一个是j与i-j相乘,一个是j与dp[i-j].
|
||||||
|
dp[i]=max(dp[i],max(j*(i-j),j*dp[i-j]))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return dp[n]
|
||||||
|
}
|
||||||
|
func max(a,b int) int{
|
||||||
|
if a>b{
|
||||||
|
return a
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Javascript:
|
Javascript:
|
||||||
```Javascript
|
```Javascript
|
||||||
|
Reference in New Issue
Block a user