码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 343 动态规划

时间:2020-05-27 12:18:28      阅读:60      评论:0      收藏:0      [点我收藏+]

标签:应该   color   注意   优势   大量   最大   更新   数字   div   

leetcode 343

整体来看就是不断对数字进行划分,然后不断求乘积。那么一半的做法应该是递归调用,但是会出现大量的重复,因为每个值对应的最大乘积没有保存

而动态规划的优势和核心思想就在于先变动会先固定下来的,然后把固定下来的值用于更新后固定下来的值的更新,把每一次先变动对应的值都存储下来了,这样就降低了复杂度。

class Solution {
    public int integerBreak(int n) {
        int[] dp=new int[n+1];
        dp[1]=1;
        for(int i=2;i<=n;i++){
            for(int j=1;j<=i-1;j++){//至少应该是1*(j-1)
                dp[i]=Math.max(dp[i],Math.max(j*(i-j),j*dp[i-j]));
                //注意都没有算上本身值dp[i]相比j*(i-j)是本身值,j*(i-j)相比j*dp[i-j]是本身值
            }
        }
        return dp[n];
    }
}

 

leetcode 343 动态规划

标签:应该   color   注意   优势   大量   最大   更新   数字   div   

原文地址:https://www.cnblogs.com/sjh-dora/p/12971305.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!