力扣---完全平方数

思路:

还是比较好想的,gi定义为和为 i 的完全平方数的最少数量。那么递推关系式是gi=min(gi-1,gi-4,gi-9,...)+1,数组初始化是g0=0,g1=1。注意这里要对g0初始化,(举个例子)因为在遍历到g4时,g4=min(g4-1,g4-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]
相关推荐
梦帮科技4 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
麻雀飞吧4 小时前
先判断工具用来学习、开发还是执行
人工智能·python
泯泷4 小时前
那段文字是谁删的?Yjs 14 正式版之前,一套删除归属方案的实现与边界
前端·javascript·算法
hold?fish:palm5 小时前
34 合并K个升序链表
javascript·算法·链表
人邮异步社区5 小时前
学习Python的最佳学习路径是什么?
python·程序员
C++ 老炮儿的技术栈5 小时前
我们在设计tcp协议时,要传一个字符串过去,报文:头十长度十内容,是否要把‘\0‘也填入,长度是否包含‘\0‘
开发语言·数据结构·c++·mfc·c
Navigator_Z7 小时前
LeetCode //C - 1252. Cells with Odd Values in a Matrix
c语言·算法·leetcode
troy1287 小时前
Python 基础语法(九):Django/Flask/FastAPI 三大 Web 框架详细对比解析
python·jupyter·django·flask·github·fastapi
jzshmyt7 小时前
我用 Python 从零“生成“了一个宇宙,然后让它观察自己(v14)
人工智能·pytorch·python·numpy·matplotlib·空间计算·scipy
语戚8 小时前
力扣 1621. 大小为K的不重叠线段的数目:动态规划(Java 实现)
java·算法·leetcode·动态规划·力扣·dp