Gegeven een gesorteerde lijst \((a_0,...,a_{n-1})\) van \(n\) gehele getallen. Bepaal drie verschillende indices \(p\), \(q\), \(r\) zodanig dat voor het triplet \((a_p, a_q, a_r)\) (indien deze bestaan) het volgende geldt: \(a_p + a_q + a_r = 0\).
Opgelet: de gesorteerde invoerlijst kan meerdere keren hetzelfde getal bevatten.
Ontwerp en implementeer een kwadratisch algoritme voor dit probleem. Implementeer hiervoor de interface DrieSomProbleem
1 in een klasse genaamd MijnDrieSomProbleem
. Hiervoor schrijf je een methode public TripletIndices zoekNulSomTriplet(List<Integer> gesorteerdeInvoer)
. Deze methode neemt een gesorteerde lijst van gehele getallen als invoer en geeft een object van het type TripletIndices
terug. In het teruggegeven object van deze gegeven klasse TripletIndices
2 worden de indices opgeslagen van de drie elementen die tot nul sommeren. Indien er zo geen drie elementen bestaan, geeft de methode zoekNulSomTriplet
null
terug.
Gebruik eventueel de testklasse SimpleTest
3 om je oplossing lokaal te testen. Je kan hierin eenvoudig extra testgevallen toevoegen.