*leetcode 343. 整数拆分 & 剑指offer 14

Posted Z-Pilgrim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了*leetcode 343. 整数拆分 & 剑指offer 14相关的知识,希望对你有一定的参考价值。

https://leetcode.cn/problems/integer-break/

这题剑指offer的代码感觉定义dp方程不清晰  此处重新写 一下

dp[i]:至少剪成>=2段的最大乘积

那么状态转移方程就是

dp[i] = max(dp[i], 剪成2段, dp[j] * (i-j))

也就是 dp[i] = max( dp[i], max(j * (i-j), dp[j] * (i-j)) );

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

以上是关于*leetcode 343. 整数拆分 & 剑指offer 14的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode 343. 整数拆分 | Python

LeetCode 343.整数拆分 - JavaScript

LeetCode-343. 整数拆分

Leetcode刷题Python343. 整数拆分

343. 整数拆分

LeetCode(算法)- 343. 整数拆分