ich habe die letzten 2 Tage viel herumprobiert, komme aber auf keine Lösung für mein Problem. Ich hoffe hier kann mir geholfen werden.
Situation:
Ich habe eine Tabelle mit 3 Spalten A-C (Datum, Region, Liga). Beispiel, s. unten:
06.09.2018 Philadelphia NFL
09.09.2018 Boston NFL
09.09.2018 Charlotte - Raleigh NFL
09.09.2018 Phoenix NFL
09.09.2018 Chicago - Milwaukee - Green Bay NFL
10.09.2018 Chicago - Milwaukee - Green Bay NHL
10.09.2018 Boston NHL
11.09.2018 Boston NBA
12.09.2018 New York NBA
Jede Zeile steht für ein Spiel. Ziel ist es, eine Region zu finden, in der innerhalb von 4 Tagen (auch am selben Tag möglich) Spiele aller 3 Ligen (NHL, NFL, NBA) stattfinden. Ausgabe soll dann die Region mit Daten und Liga sein.
In meinem Beispiel würde es nur 1 Ergebnis geben:
Region: Boston
Daten + Ligen: 09.09.2018 NFL / 10.09.2018 NHL / 11.09.2018 NBA
Grundsätzlich wird es bei der vollen Liste ca. 100 Ergebnis-Sets geben.
Meine bisherige Idee:
1. Tabelle in dreidimensionales Array übergeben
2. Dieses Array zeilenweise durchsuchen, ob 3. Spalte (Liga) = NFL [NFL-Termine kommen am seltestens vor und sind daher immer der Engpass]
3. Abhängig von der aktuellen Zeile aus Schritt 2 dann die restlichen Zeilen durchsuchen nach Datum [Datum aus Schritt 2 +/- 3 Tage]
4. Die dann verbleibenden Spiele überprüfen, ob mindestens 1x NFL, 1x NHL und 1x NBA vorhanden ist.
5. Verfeinern: Theoretisch könnten die Termine jetzt bis zu 7 auseinander liegen wegen der ersten Suche nach +/- 3 Tage. Innerhalb der verbleibenden Spiele soll jetzt noch so weit reduziert werden, dass zwischen dem 1. und 3. Spiel (1x je Liga) nur max. 3 Tage liegen.
Ich scheitere an Schritt 3. Könnt ihr mir dabei weiterhelfen? Wenn es bessere Wege gibt als meine Idee, sehr gerne auch auf komplett anderem Lösungsweg. Wichtig ist mir nur das Ergebnis. Gerade Schritt 5 ist wahrscheinlich sehr komplex, daher gerne bessere Wege zum Ziel anbieten.
Vielen Dank vorab für eure Ideen und Hilfe!
Viele Grüße
bsagittary