クラスソリューション{ 公共 のintロブ(INT [] NUMS){ 場合(nums.length <= 0 || NUMS == NULL ){ 戻り 0 。 } もし(nums.length == 1 ){ 戻り NUMS [0 ]。 } 場合(nums.lengthの== 2 ){ 戻りマックス(NUMS [0]、NUMS [1 ])。 } INT [] DPは= 新しい INT [nums.length]。 DP [ 0] = NUMS [0 ]。 DP [ 1] = MAX(NUMS [0]、NUMS [1 ])。 以下のために(int型 I = 2; iはnums.length <; iは++ ){ DP [I] = MAX((DP [I-2] + NUMS [i])と、DP [I-1 ])。 } 戻り DP [nums.length-1 ]。 } 公共 INTマックス(INT A、INT B){ 戻り > bは?A:B; } }