1 クラスソリューション{ 2 公共の int型の変化(INTの量は、int型{[]硬貨) 3 であれば(量== 0 ){ 4 リターン 1 。 5 } 6 場合(コイン== NULL || coins.length == 0 ){ 7 戻り 0 ; 8 } 9 INT [] DP = 新しい INT [量+ 1 ]。 10 DP [ 0 ] = 1; 11 のための(int型コイン:コイン){ 12 のための(int型 I =コイン; iが<=量; Iは++ ){ 13 、DP [I] + = DP [I - コイン]。 14 } 15 } 16 リターンDP [量]。 17 } 18 }
コントラストleetcode322:
1つの パブリック クラスソリューション{ 2 公共 INT coinChange(INT []コイン、int型の量){ 3 であれば(量== 0)戻り 0 ; 4 INT [] DP = 新しい INT [量+ 1 ]。 5 DP [ 0 ] = 0 。 6 のために(int型 i = 1 ; iが<=量; iは++ ){ 7 DP [I] = Integer.MAX_VALUEの; 8 について(INT K:コイン){ 9 もし(!I> = K && DP [IK] = Integer.MAX_VALUEの){ 10 、DP [i]は= Math.min(DP [IK] + 1 、DP [I])。 11 } 12 } 13 } 14 であれば(DP [量] <Integer.MAX_VALUEの&& DP [量]> 0 ){ 15 リターンDP [量]。 16 } 他{ 17 リターン - 1 。 18 } 19 20 } 21 }