Sottoarray di Somma Massima (in italian)¶
Dato un array di n interi, individuare il sottoarray di somma massima.
Esempio: -1 5 8 -9 4 1
Deve produrre 5+8=13
Sono possibili almeno 3 soluzioni:
Sottoarray di Somma Massima: Soluzione 1¶
Sottoarray di Somma Massima: Soluzione 2¶
Sottoarray di Somma Massima: Soluzione 3¶
Applichiamo i seguenti due lemmi:
- La somma dei valori in ogni prefisso del sottoarray ottimo è positiva, se così non fosse potremmo eliminare tale prefisso ottenendo un sottoarray di somma maggiore (assurdo). Esempio: in -1,5,8 il valore -1 puo’ essere tolto
- Il valore immediatamente precedente al primo valore del sottoarray ottimo è negativo, se così non fosse potremmo aggiungere tale valore ottenendo un sottoarray di somma maggiore (assurdo). Esempio: in 5,8 il valore successivo e’ il negativo -9, altrimenti -9 farebbe parte della sequenza