NUMSの列の数を考えると
DPは、[I] - NUMS [I]において、***サブストリングと最大の端部であります
開始:DP [0] = NUMS [0]
状態遷移:DP [I] = MAX(DP [I-1] + NUMS [i]は、NUMS [i])と
クラスのソリューション{ パブリック: 静的 のconst int型 INF = 0x7FFFFFFFで、 INT maxSubArray(ベクトル< INT >&NUMS){ int型 LEN = nums.size()。 int型 MAXN = INF *( - 1 ); ベクター < INT > DP(LEN)。 もし(nums.size()== 0)の戻り 0 ; 以下のために(int型 i = 0 ; iがLEN <; iは++ ){ 場合(I ==0)DPが[ 0 ] = NUMS [ 0 ]。 他 DP [I] = MAX(NUMS [I] + DP [I - 1 ]、NUMS [I])。 もし(DP [I]> MAXN)MAXN = DP [I]。 } 戻りMAXN。 } }。