leetcode343. 整数拆分
        【摘要】  给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 
示例 1: 
输入: 2 输出: 1 解释: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 
输入: 10 输出: 36 解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。 
思路:动态规划,等于之前...
    
    
    
    给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。
示例 1:
输入: 2
 输出: 1
 解释: 2 = 1 + 1, 1 × 1 = 1。
 示例 2:
输入: 10
 输出: 36
 解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。
思路:动态规划,等于之前j的某个最优解或者j本身,乘i-j
  
   - 
    
     
    
    
     
      class Solution {
     
    
- 
    
     
    
    
      public int integerBreak(int n) {
     
    
- 
    
     
    
    
      int[] dp = new int[n + 1];
     
    
- 
    
     
    
    
     
       dp[1]=1;
     
    
- 
    
     
    
    
      for (int i = 2; i <= n; i++)
     
    
- 
    
     
    
    
      for (int j = 1; j < i; j++)
     
    
- 
    
     
    
    
     
       dp[i] = Math.max(dp[i], Math.max(j,dp[j]) * (i - j));
     
    
- 
    
     
    
    
      return dp[n];
     
    
- 
    
     
    
    
     
       }
     
    
- 
    
     
    
    
     
      }
     
    
 
文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。
原文链接:fantianzuo.blog.csdn.net/article/details/104752794
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)