StackOverflow 에서이 질문 을 했지만 여기에 더 적절한 장소가 있다고 생각합니다.
이것은 알고리즘 소개 과정 에서 발생하는 문제입니다 .
양의 정수 가 n 인 배열 가 있습니다 (배열을 정렬하거나 요소를 고유하게 할 필요는 없습니다). 추천 O ( N ) 로 나누어 소자의 가장 큰 합을 찾는 알고리즘 N을 .
예 : . 답은 56입니다 (요소 6 , 13 , 4 , 8 , 25 포함 )
동적 프로그래밍을 사용하고 나머지 0 , 1 , 2 , 와 함께 가장 큰 합계를 저장하여 에서 비교적 쉽게 찾을 수 있습니다 . . . , n - 1 .
또한 연속 된 요소 시퀀스에주의를 제한하면 부분 합 모듈로 n 을 저장 하여 시간 에 최적의 시퀀스를 쉽게 찾을 수 있습니다 . let S [ i ] = a [ 0 ] + a [ 1 ] + ⋯ + a [ i ] , 각 나머지 r 에 대해 S [ j ] ≡ r이 되도록 가장 큰 인덱스 j를 기억하십시오 , 다음의 각 I 고려해야 S [ J ] - S가 [ I ] 여기서, J는 에 대응하는 인덱스이고 , R = S [ I ] 개조 N .
그러나 일반적인 경우에 시간 솔루션이 있습니까? 모든 제안을 부탁드립니다! 나는 이것이 선형 대수를 다루는 것으로 생각하지만 정확히 무엇인지 모르겠습니다.
또는 시간 내에이 작업을 수행 할 수 있습니까?