动态规划-343. Integer Break
来源:互联网 发布:爱迪生电弧打火机 淘宝 编辑:程序博客网 时间:2024/06/14 03:30
题目:
Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of those integers. Return the maximum product you can get.
For example, given n = 2, return 1 (2 = 1 + 1); given n = 10, return 36 (10 = 3 + 3 + 4).
题意解读:给定一个正整数,把他分裂成至少两个正整数的组合。然后最大化这些正整数的乘积
/*dp[i]代表数i可以分为至少两部分,这些部分的乘积的最大值状态转移方程:dp[i] = Math.max(dp[i],Math.max(dp[i-j],i-j)*Math.max(j,dp[j]));Math.max(dp[i-j],i-j):这里是考虑有些数,无论怎么拆开相乘,还没有数本身大,这种数就不要拆开。比如2,3,4*/class Solution { public int integerBreak(int n) { int[] dp = new int[n+1]; // while(++sum <= n){ // for(int i = 1; i < sum; i++){ // dp[sum] = Math.max(dp[sum],Math.max(dp[sum-i],sum-i)*Math.max(i,dp[i])); // } // } //元素可以重复 for(int i = 2; i <= n; i++){ for(int j = 1; j < i; j++) dp[i] = Math.max(dp[i],Math.max(dp[i-j],i-j)*Math.max(j,dp[j])); } return dp[n]; }}
阅读全文
0 0
- 动态规划-343. Integer Break
- 343.[LeetCode] 动态规划 Integer Break
- 343. Integer Break(LeetCode, C++, 动态规划)
- 动态规划中级教程 343. Integer Break
- 343. Integer Break (动态规划)
- 动态规划解343. Integer Break
- 343. Integer Break 类别:动态规划 难度:medium
- 动态规划——343. Integer Break[Medium]
- LeetCode 343. Integer Break 动态规划,状态转移方程
- Leetcode 343(Integer Break非动态规划求解)
- '动态规划:word-break'
- 动态规划:word-break
- 【动态规划】Integer Percentage
- Leetcode 343. Integer Break
- [LeetCode] 343. Integer Break
- leetcode 343. Integer Break
- LeetCode-343. Integer Break
- LeetCode 343. Integer Break
- 数据库——SQL中的join连接
- 无穷小微积分的模型论思想
- 用OC和UI实现购物车功能 在iOS平台上
- SocketDemo 类似聊天室
- C语言程序,求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
- 动态规划-343. Integer Break
- Spring系列之Spring常用注解总结
- 使用Loader获取Android联系人列表
- leetcode--189.Rotate
- ndk c调java
- stl set讲解
- u启动盘制作
- 成对使用new和delete时要采取相同形式
- leetcode--169.Major Element