LeetCode343. Integer Break

文章目录

    • 一、题目
    • 二、题解

一、题目

Given an integer n, break it into the sum of k positive integers, where k >= 2, and maximize the product of those integers.

Return the maximum product you can get.

Example 1:

Input: n = 2
Output: 1
Explanation: 2 = 1 + 1, 1 × 1 = 1.
Example 2:

Input: n = 10
Output: 36
Explanation: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36.

Constraints:

2 <= n <= 58

二、题解

class Solution {
public:
    int integerBreak(int n) {
        vector<int>dp(n+1,0);
        dp[2] = 1;
        for(int i = 3;i <= n;i++){
            for(int j = 1;j < i;j++){
                dp[i] = max(dp[i],max(j * dp[i-j],j * (i-j)));
            }
        }
        return dp[n];
    }
};

你可能感兴趣的:(算法,数据结构,leetcode,c++,动态规划)