Problem
Original anzeigen (Englisch)Du kannst beliebige Teilmengen der gegebenen Münzen auswählen. Jede einzelne Münze darf höchstens einmal verwendet werden, auch wenn mehrere Münzen denselben Wert haben. Finde die kleinste positive ganze Zahl, die durch keine Auswahl gebildet werden kann.
Implementiere missing_coin_sum(coins).
Eingabe
coins: Die Werte der verfügbaren Münzen; Duplikate stehen für verschiedene Münzen.
Ausgabe
Gib den kleinsten positiven unmöglichen Betrag zurück.
Einschränkungen
1 ≤ Anzahl der Münzen ≤ 200.000. Jeder Wert liegt zwischen 1 und 1.000.000.000.
Beispiele
Eingabe:
coins = [1, 1, 4]
Erwartete Ausgabe:
expected = 3
Eingabe:
std::vector<long long> coins = {1, 1, 4};
Erwartete Ausgabe:
long long expected = 3;
Eingabe:
long[] coins = new long[] {1, 1, 4};
Erwartete Ausgabe:
long expected = 3;
Erläuterung
Die Beträge 1 und 2 können mit den Einser-Münzen gebildet werden. Keine verfügbare Teilmenge ergibt 3.
Eingabe:
coins = [2, 3]
Erwartete Ausgabe:
expected = 1
Eingabe:
std::vector<long long> coins = {2, 3};
Erwartete Ausgabe:
long long expected = 1;
Eingabe:
long[] coins = new long[] {2, 3};
Erwartete Ausgabe:
long expected = 1;
Erläuterung
Es gibt keine Möglichkeit, 1 zu bilden, da jede Münze mindestens den Wert 2 hat.
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.