Problem
Original anzeigen (Englisch)Gib den zweitgrößten eindeutigen Wert in der Liste zurück. Wiederholte Werte zählen nur einmal.
Implementiere second_largest(numbers).
Eingabe
numbers: Eine Liste von nicht-negativen Ganzzahlen.
Ausgabe
Gib den zweitgrößten eindeutigen Wert zurück, oder -1, falls dieser nicht existiert.
Einschränkungen
0 ≤ Länge ≤ 100.000; 0 ≤ jeder Wert ≤ 10⁹
Beispiele
Eingabe:
numbers = [4, 9, 7, 9]
Erwartete Ausgabe:
expected = 7
Eingabe:
std::vector<long long> numbers = {4, 9, 7, 9};
Erwartete Ausgabe:
long long expected = 7;
Eingabe:
long[] numbers = new long[] {4, 9, 7, 9};
Erwartete Ausgabe:
long expected = 7;
Erläuterung
Eindeutige Werte sind 9, 7, 4; der zweitgrößte ist 7.
Eingabe:
numbers = [5, 5]
Erwartete Ausgabe:
expected = -1
Eingabe:
std::vector<long long> numbers = {5, 5};
Erwartete Ausgabe:
long long expected = -1;
Eingabe:
long[] numbers = new long[] {5, 5};
Erwartete Ausgabe:
long expected = -1;
Erläuterung
Es existiert nur ein eindeutiger Wert, daher ist die Antwort -1.
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.