2025年LeetCode刷题:完全平方数

LeetCode刷题:完全平方数给你一个整数 n 返回 和为 n 的完全平方数的最少数量 完全平方数 是一个整数 其值等于另一个整数的平方 换句话说 其值等于一个整数自乘的积 例如 1 4 9 和 16 都是完全平方数 而 3 和 11 不是 示例一 示例二 思路分析

大家好,我是讯享网,很高兴认识大家。

给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。
完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。
示例一:
在这里插入图片描述
讯享网
示例二:
在这里插入图片描述
思路分析:
此题采用动态规划求解问题:dp[i] 表示i的完全平方和的最少数量,dp[i - j * j] + 1表示减去一个完全平方数j的完全平方之后的数量加1就等于dp[i],只要在dp[i], dp[i - j * j] + 1中寻找一个较小的值就是最后dp[i]的值。
注意: 在里面要设dp[0]=0

代码展示:

class Solution { 
    public int numSquares(int n) { 
    //定义dp[n]表示和为 n 的完全平方数的最少数量 int[] dp=new int[n+1]; //首先定义和为 i 的完全平方数的最多数量(全由1组成) for(int i=0;i<n+1;i++){ 
    dp[i]=i; for(int j=1;i-j*j>=0;j++){ 
    dp[i]=Math.min(dp[i],dp[i-j*j]+1); } } return dp[n]; } } 

讯享网
小讯
上一篇 2025-02-10 08:14
下一篇 2025-03-30 16:17

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/19151.html