Gegeven is een lijst van verschillende punten in het vlak, met gehele coördinaten. We zeggen dat een punt
Ontwerp en implementeer een algoritme voor dit probleem met tijdscomplexiteit
Schrijf een klasse MyDomination
die de interface Domination
1 implementeert. Je zal ook de klasse Point
2 nodig hebben.
Deze interface bevat de methode Collection<Point> nonDominated(List<Point> input)
die, gegeven de lijst van punten, een collectie naar keuze terug geeft waarin enkel de niet-gedomineerde punten van de input zitten. Je mag de gegeven lijst aanpassen, maar de meegegeven Punten niet. Je mag ook zelf geen nieuwe punten maken via de constructor.
Gebruik eventueel de testklasse SimpleTest
3 om je oplossing lokaal te testen. Je kan hierin eenvoudig extra testgevallen toevoegen.
Tip: je kan de lijst met punten sorteren op de x
-waarde door gebruik te maken van de functie Comparator#comparing
4:
input.sort(Comparator.comparing(Point::getX));