이 문제에 대한 입력은 A[1...n]
의 실수입니다. 인접한 하위 시퀀스 A[i],A[i+1],...A[j]
의 숫자를 모두 합하여 최대 값이 무엇인지 알아 내야합니다. A
입니다. A
에 음수가 포함되어 있지 않은 경우 문제는 간단하며 A
의 모든 요소를 합산하여 해결할 수 있습니다. A
에 양수와 음수가 혼합되어 있으면 더 까다로워집니다.최대 값 연속 하위 시퀀스 알고리즘
예를 들어, A = [-2,11,-4,13,-5,-3]
의 경우, 용액은 20
(11-4 + 13 = 20)입니다. A = [-2,1,-3,4,-1,2,1,-5,4]
의 경우, 용액은 6
(4-1 + 2 + 1 = 6)입니다. 빈 서브 시퀀스 번호의 합은 0
입니다.
은 O (N^3)이 문제를 해결 무력 솔루션이 존재하지만, 선형 시간의 문제를 해결하는 것이 가능하다.
- 선형 시간으로 위에서 설명한 문제를 해결하는 알고리즘을 설계하십시오. 귀하의 알고리즘을 의사 코드로 제시하십시오.
- 알고리즘이 작동하는 방법 및 이유를 간략하게 설명하십시오.
- 알고리즘이 실제로 선형 시간으로 실행되는 이유에 대한 간략한 설명을 제공하십시오. 우리는 모든 항목을하지 않는 경우