zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 343 整数拆分(动态规划入门经典)

    343. 整数拆分

    给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。

    示例 1:

    输入: 2
    输出: 1
    解释: 2 = 1 + 1, 1 × 1 = 1。
    示例 2:

    输入: 10
    输出: 36
    解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。
    说明: 你可以假设 n 不小于 2 且不大于 58。

    class Solution {
          public int integerBreak(int n) {
            if (n == 2)
                return 1;
            if (n == 3)
                return 2;
            int[] dp = new int[n + 1];
            dp[2] = 2;
            dp[3] = 3;
            for (int i = 4; i <= n; i++)
                for (int j = 1; j <= i; j++)
                    dp[i] = Math.max(dp[i], j * dp[i - j]);
            return dp[n];
        }
    }
    
  • 相关阅读:
    Fluent API
    什么是blazor
    10.事务
    9.用ExecuteSqlCommand执行存储过程
    8.自增主键 插入指定主键的数据
    7.图
    6.实体与上下文的关系
    5.并发
    4.跟踪
    3.级联删除
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13075850.html
Copyright © 2011-2022 走看看