StackOverflow bu soruyu sordum , ama burada daha uygun bir yer olduğunu düşünüyorum.
Bu algoritma giriş ders bir sorun :
Bir dizi var ile pozitif (dizi sıralanacak gerekmez veya elemanlar benzersiz) tamsayılar. Bir sonuçları ile bölünebilen elemanlarının büyük toplamı bulmak için algoritma .
Örnek: . Cevap ( elementli )
Dinamik programlama kullanarak ve 0 , 1 , 2 , kalan en büyük toplamı depolayarak de bulmak nispeten kolaydır . . . , n - 1 .
Ayrıca, dikkati bitişik bir eleman dizisiyle kısıtlarsak , kısmi toplamları modulo n depolayarak zamanında bu tür optimal diziyi bulmak kolaydır : let S [ i ] = a [ 0 ] + a [ 1 ] + ⋯ + bir [ ı ] , her bir geri kalan için r büyük endeks hatırlamak j öyle ki S [ j ] ≡ r ve daha sonra her bir i için S [ j ] - S [ i ] olduğunu düşünürsünüz; burada j , r = S [ i ] mod n'ye karşılık gelen dizindir .
Fakat genel durum için -zamanlı bir çözüm var mı? Herhangi bir öneriniz takdir edilecektir! Bunun lineer cebirle uğraşacak bir şey olduğunu düşünüyorum ama tam olarak ne olduğundan emin değilim.
Alternatif olarak, bu zamanında yapılabilir mi?