数の完全なソリューションのバックパックの完璧な広場

クラスソリューション{
     プライベート INT [] W。
    プライベート int型のDP [];
    
    公共 INT numSquares(int型N){
        W = 新しい INT [(INT)(Math.sqrt(N)+1 )]。
        DP = 新しい INT [N + 1 ]。
        以下のためにint型 ;)I <= Math.sqrt(N; I = 1 ++ I){
            [i]は、W = I *はIであり;
        }
        以下のためにint型 I = 1; I <w.length; ++ I){
             ためINT J = W [i]は、J <= N; ++ J){
                 場合(jは== W [i])と{
                    DP [J] = 1 
                } {
                     場合(DP [JW [I]]!= 0 ){
                         場合(DP [J] == 0 ){
                            DP [j]は DPを= [JW [I] + 1 
                        } {
                            DP [J] = Math.min(DP [J]、DP [JW [I] + 1 )。
                        }
                    }
                }
            }
        }
        戻り[n]はDP;
        
    }
}

 

おすすめ

転載: www.cnblogs.com/z2529827226/p/11627216.html