动态规划完全背包系列一>完全平方数

题目转化: 这里是引用状态表示: 这里是引用状态转移方程: 这里是引用初始化: 这里是引用填表顺序: 这里是引用返回值: 这里是引用代码呈现:代码语言:javascript代码运行次数:0运行复制class Solution {public

动态规划完全背包系列一>完全平方数

题目转化:

这里是引用

状态表示:

这里是引用

状态转移方程:

这里是引用

初始化:

这里是引用

填表顺序:

这里是引用

返回值:

这里是引用

代码呈现:

代码语言:javascript代码运行次数:0运行复制
class Solution {

    public int numSquares(int n) {
        int aim = (int)Math.sqrt(n);
        int[][] dp = new int[aim+1][n+1];

        int INF = 0x3f3f3f3f;
        //初始化
        for(int i = 1; i <= n; i++) dp[0][i] = INF;
        
        for(int i = 1; i <= aim; i++)
            for(int j = 0; j <= n; j++){
                dp[i][j] = dp[i-1][j];
                if(j >= i*i)
                    dp[i][j] = Math.min(dp[i][j], dp[i][j-i*i]+1);
            }

        return dp[aim][n];    
    }
}

空间优化版本:

代码语言:javascript代码运行次数:0运行复制
int aim = (int)Math.sqrt(n);
        int[] dp = new int[n+1];

        int INF = 0x3f3f3f3f;
        //初始化
        for(int i = 1; i <= n; i++) dp[i] = INF;
        
        for(int i = 1; i <= aim; i++)
            for(int j = i*i; j <= n; j++){
                dp[j] = Math.min(dp[j], dp[j-i*i] + 1);
            }

        return dp[n];
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2025-03-23,如有侵权请联系 cloudcommunity@tencent 删除动态规划优化dpintmath

发布者:admin,转转请注明出处:http://www.yc00.com/web/1748183724a4743987.html

相关推荐

  • 动态规划完全背包系列一>完全平方数

    题目转化: 这里是引用状态表示: 这里是引用状态转移方程: 这里是引用初始化: 这里是引用填表顺序: 这里是引用返回值: 这里是引用代码呈现:代码语言:javascript代码运行次数:0运行复制class Solution {public

    3小时前
    10

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信