力扣---完全平方数

思路:

还是比较好想的,g[i]定义为和为 i 的完全平方数的最少数量。那么递推关系式是g[i]=min(g[i-1],g[i-4],g[i-9],...)+1,数组初始化是g[0]=0,g[1]=1。注意这里要对g[0]初始化,(举个例子)因为在遍历到g[4]时,g[4]=min(g[4-1],g[4-4])+1。

代码:

C++:

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

Python:

python 复制代码
class Solution:
    def numSquares(self, n: int) -> int:
        g=[0x3f3f3f3f]*(n+1)
        g[0]=0
        g[1]=1
        for i in range(2,n+1):
            j=1
            while i-j*j>=0:
                temp=j*j
                g[i]=min(g[i],g[i-temp]+1)
                j+=1
        return g[n]
相关推荐
这里有鱼汤1 分钟前
Python侦探:我用代码破解男朋友的浏览历史,发现了惊天秘密!
后端·python
奥顺互联6 分钟前
如何在PHP中实现自定义路由:增强应用灵活性
算法
奥顺互联9 分钟前
PHP中的策略模式:提高代码灵活性的实用案例
算法
敲上瘾14 分钟前
子数组问题——动态规划
java·c++·算法·动态规划
星空露珠21 分钟前
迷你世界脚本文字板接口:Graphics
数据结构·游戏·lua
eason_fan21 分钟前
前端手撕代码(bigo)
算法·面试
Hello kele22 分钟前
大型项目,选择conda还是Poetry要点分析
人工智能·python·conda·ai编程·poetry
SmallBambooCode25 分钟前
【人工智能】【Python】在Scikit-Learn中使用KNN(K最近邻算法)
人工智能·python·机器学习·scikit-learn·近邻算法
jaffe—fly28 分钟前
【解决问题】conda 虚拟环境内,`pip list` 展示全局的包
python·conda·pip
带上一无所知的我28 分钟前
解锁Conda:Python环境与包管理的终极指南
开发语言·python·conda