동적 프로그래밍 급 화제는, 각 숫자의 합계의 최대 값을 기록하고 전에 두 DP [I]를 두 변수 A 및 맥스 정의 된 경우 DP [I-1]> 0, 다음 DP [ I] + DP가 [I-1] DP [I]가, 다른 한편으로는보다 작고보다 커야 그것은 결정 (A)의 값을 업데이트하는, 0보다 클 때마다에만 필요하고 크기 및 맥스, 맥스 갱신을 결정한다.
클래스 해결 { 공개 INT maxSubArray ( INT [] nums) { INT 맥스 nums = [0 ]; INT의 A = nums [0 ]; 위한 ( int로 <; nums.length 난 ++ 난 = 1 ) { 경우 (a = 0> ) = nums는 [내가] + 단계; 다른 =의 nums [I]; 경우 (a> 맥스) 맥스 = a 및 } 반환 MAXX을; } }