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];
    }
};
相关推荐
CoderYanger14 分钟前
贪心算法:3.最大数
java·算法·leetcode·贪心算法·1024程序员节
lxmyzzs15 分钟前
【图像算法 - 37】人机交互应用:基于 YOLOv12 与 OpenCV 的高精度人脸情绪检测系统实现
算法·yolo·人机交互·情绪识别
muyouking1115 分钟前
Zig 语言实战:实现高性能快速排序算法
算法·排序算法
CoderYanger21 分钟前
贪心算法:5.最长递增子序列
java·算法·leetcode·贪心算法·1024程序员节
慕容青峰23 分钟前
【牛客周赛 107】E 题【小苯的刷怪笼】题解
c++·算法·sublime text
算法熔炉28 分钟前
深度学习面试八股文(2)——训练
人工智能·深度学习·算法
EXtreme3536 分钟前
【数据结构】打破线性思维:树形结构与堆在C语言中的完美实现方案
c语言·数据结构·算法··heap·完全二叉树·topk
cici1587438 分钟前
含风电场的十机24时系统机组出力优化算法
人工智能·算法·机器学习
ss27340 分钟前
跳表(SkipList)平衡树的数据结构设计与并发实践
数据结构·skiplist
WolfGang00732142 分钟前
代码随想录算法训练营Day45 | 101.孤岛的总面积、102.沉没孤岛、103.水流问题、104.建造最大岛屿
算法·深度优先