343. 整数拆分

给定一个正整数 n ,将其拆分为 k正整数 的和( k >= 2 ),并使这些整数的乘积最大化。

返回 你可以获得的最大乘积

示例 1:

复制代码
输入: n = 2
输出: 1
解释: 2 = 1 + 1, 1 × 1 = 1。

示例 2:

复制代码
输入: n = 10
输出: 36
解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。

提示:

  • 2 <= n <= 58

代码:

cpp 复制代码
class Solution {
public:
    int integerBreak(int n) {
        long long dp[100001];
        dp[0] = 0;
        dp[1] = 0;
        dp[2] = 1;
        for (int i = 3; i <= n; i++) {
            int maxNum = 0;
            for (int j = 0; j <= i / 2; j++) {
                if (j * (i - j) > j * dp[i - j] && j * (i - j) > dp[i]) {
                    maxNum = j * (i - j);
                }
                else if (j * dp[i - j] > j * (i - j) && j * dp[i - j] > dp[i]) {
                    maxNum = j * dp[i - j];
                }
                else if (dp[i] > j * dp[i - j] && dp[i] > j * (i - j)) {
                    maxNum = dp[i];
                }
                dp[i] = maxNum;
            }
        }
        return dp[n];
    }
};
相关推荐
bybitq几秒前
LeetCode-437-路径总和3
算法
im_AMBER2 分钟前
数据结构 18 【复习】广义表 | 各种内部排序 | 二叉排序树的平均查找长度 ASL
数据结构·笔记·学习·排序算法
鱼跃鹰飞38 分钟前
Leetcode尊享面试100题:1060. 有序数组中的缺失元素
算法·leetcode·面试
啊我不会诶42 分钟前
AtCoder Beginner Contest 438 vp补题
算法
computersciencer42 分钟前
用最小二乘法求解一元一次方程模型的参数
算法·机器学习·最小二乘法
mit6.8241 小时前
扫描线|离散化|seg+二分|卡常
算法
不穿格子的程序员1 小时前
从零开始写算法——二叉树篇6:二叉树的右视图 + 二叉树展开为链表
java·算法·链表
大志若愚YYZ1 小时前
ROS2学习 C++中的this指针
c++·学习·算法
AI科技星1 小时前
光子的几何起源与量子本质:一个源于时空本底运动的统一模型
服务器·人工智能·线性代数·算法·机器学习
源代码•宸1 小时前
Golang原理剖析(map面试与分析)
开发语言·后端·算法·面试·职场和发展·golang·map