Problem
Jede Zeile von scores enthält die Testergebnisse eines Schülers. Berechne den Durchschnitt jedes Schülers mit einer Hilfsfunktion und gib den Zeilenindex des Schülers mit dem höchsten Durchschnitt zurück. Bei Gleichstand gib den kleinsten Index zurück.
Implementiere top_student(scores).
Eingabe
scores: Eine Zeile mit Ergebnissen pro Schüler; jede Zeile enthält mindestens ein Ergebnis.
Ausgabe
Gib den Index des besten Schülers zurück.
Einschränkungen
1 ≤ Schüler ≤ 1.000; 1 ≤ Ergebnisse pro Schüler ≤ 100; 0 ≤ Ergebnis ≤ 100
Beispiele
Eingabe:
scores = [
[80, 90],
[95, 85],
[70, 100]
]
Erwartete Ausgabe:
expected = 1
Eingabe:
std::vector<std::vector<long long>> scores = {
{80, 90},
{95, 85},
{70, 100}
};
Erwartete Ausgabe:
long long expected = 1;
Eingabe:
long[][] scores = new long[][] {
new long[] {80, 90},
new long[] {95, 85},
new long[] {70, 100}
};
Erwartete Ausgabe:
long expected = 1;
Erläuterung
Die Durchschnitte sind 85, 90 und 85, also hat Schüler 1 den höchsten Durchschnitt.
Eingabe:
scores = [
[60],
[60, 60]
]
Erwartete Ausgabe:
expected = 0
Eingabe:
std::vector<std::vector<long long>> scores = {
{60},
{60, 60}
};
Erwartete Ausgabe:
long long expected = 0;
Eingabe:
long[][] scores = new long[][] {
new long[] {60},
new long[] {60, 60}
};
Erwartete Ausgabe:
long expected = 0;
Erläuterung
Beide Durchschnitte sind 60; bei Gleichstand gewinnt der kleinere Index, also 0.
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Vergleiche Studenten nach ihrem Durchschnitt, nicht nach einem einzelnen Test.
Hinweis 2
Berechne den Durchschnitt jeder Zeile und merke dir den bisher besten Index.
Hinweis 3
Bei Gleichstand beim Durchschnitt bleibt der frühere Student stehen.
Erwartete Komplexität
Zeit O(total scores), zusätzlicher Speicher O(1)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.