【算法四十三】279. 完全平方数

279. 完全平方数

动态规划:

java 复制代码
class Solution {
    public int numSquares(int n) {
        //子问题:从前i个完全平方数中选刚好满足n的最少次数,这里的平方数可以重复选
        //子问题的解法:dp[n] = min(dp[n],dp[n-i²]+1)
        //前提是n>=i²
        //顺序:自下到上
        int[] dp = new int[n+1];
        //一定要初始化,dp初始值都为0,所以要填充
        Arrays.fill(dp,100000);
        dp[0] = 0;
        for(int i = 1;i*i<=n;i++){
            int squ = i*i;
            for(int sum = squ;sum<=n;sum++){
                dp[sum] = Math.min(dp[sum],dp[sum-squ]+1);
            }
        }
        return dp[n];
    }
}

时间复杂度:O(N・√N),N是n

空间复杂度:O(N)

相关推荐
不会就选b3 小时前
算法日常・每日刷题--<贪心>25
数据结构·算法
千里码aicood7 小时前
基于CART算法的图书分类系统设计与实现
数据库·算法·分类
做cv的小昊7 小时前
【World Model】π0.5:a Vision-Language-Action Model with Open-World Generalization
人工智能·算法·机器学习·大模型·多模态·vla·世界模型
لا معنى له8 小时前
World-In-World: World Models in a Closed-Loop World
算法
Discipline102910 小时前
尼泊尔河流流量:天气驱动的预测与高流量风险
人工智能·算法
XuCoder10 小时前
改一个数,右边全得重算,这题怎么扛住两万次查询
算法
小羊没烦恼!10 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
weixin_3077791310 小时前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法
hold?fish:palm11 小时前
45 二叉树的右视图
开发语言·c++·算法