完全背包解一个数的完全平方

Posted 奋斗中的小蜗牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完全背包解一个数的完全平方相关的知识,希望对你有一定的参考价值。

class Solution {
    private int w[];
    private int dp[];
    
    public int numSquares(int n) {
        w=new int[(int) (Math.sqrt(n)+1)];
        dp=new int[n+1];
        for(int i=1;i<=Math.sqrt(n);++i) {
            w[i]=i*i;
        }
        for(int i=1;i<w.length;++i) {
            for(int j=w[i];j<=n;++j) {
                if(j==w[i]) {
                    dp[j]=1;
                }else {
                    if(dp[j-w[i]]!=0) {
                        if(dp[j]==0) {
                            dp[j]=dp[j-w[i]]+1;
                        }else {
                            dp[j]=Math.min(dp[j], dp[j-w[i]]+1);
                        }
                    }
                }
            }
        }
        return dp[n];
        
    }
}

 

以上是关于完全背包解一个数的完全平方的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 279. 完全平方数----完全背包的套路

自构物品的完全背包问题(完全平方数)

完全平方数

leetcode No279 完全平方数 java

leetcode No279 完全平方数 java

C语言中如何判断一个数是完全平方数