力扣 hot100 Day74

279. 完全平方数

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量

完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,14916 都是完全平方数,而 311 不是。

cpp 复制代码
class Solution {
public:
    int numSquares(int n) {
        vector<int> dp(n+1, INT_MAX);
        dp[0] = 0;
        
        for(int i = 1; i <= n; ++i) {
            for(int j = 1; j*j <= i; ++j) {
                dp[i] = min(dp[i], dp[i - j*j] + 1);
            }
        }
        
        return dp[n];
    }
};

逻辑是,对于dp[i],遍历所有小于i的平方和,比较dp[i-j*j]+1与dp[i]的最小值,即可得最少数量

dp初始化为极大值,所以可以理解为dp[i]会在循环初始为dp[i-1]+1,只需要设定dp[0]=0即可

相关推荐
MM_MS9 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E10 小时前
【二分法】寻找峰值
算法
mit6.82410 小时前
位运算|拆分贪心
算法
ghie909010 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体110 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk99810 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
Z1Jxxx11 小时前
加密算法加密算法
开发语言·c++·算法
乌萨奇也要立志学C++11 小时前
【洛谷】递归初阶 三道经典递归算法题(汉诺塔 / 占卜 DIY/FBI 树)详解
数据结构·c++·算法
vyuvyucd11 小时前
C++引用:高效编程的别名利器
算法
鱼跃鹰飞12 小时前
Leetcode1891:割绳子
数据结构·算法