Problema
Each row of scores holds one student's test scores. Compute each student's average with a helper function and return the row index of the student with the highest average. If several tie, return the smallest index.
Implement top_student(scores).
Input
scores: One row of scores per student; every row has at least one score.
Output
Return the index of the top student.
Restrições
1 ≤ students ≤ 1,000; 1 ≤ scores per student ≤ 100; 0 ≤ score ≤ 100
Exemplos
Entrada:
scores = [
[80, 90],
[95, 85],
[70, 100]
]
Saída esperada:
expected = 1
Entrada:
std::vector<std::vector<long long>> scores = {
{80, 90},
{95, 85},
{70, 100}
};
Saída esperada:
long long expected = 1;
Entrada:
long[][] scores = new long[][] {
new long[] {80, 90},
new long[] {95, 85},
new long[] {70, 100}
};
Saída esperada:
long expected = 1;
Explicação
Averages are 85, 90 and 85, so student 1 has the highest average.
Entrada:
scores = [
[60],
[60, 60]
]
Saída esperada:
expected = 0
Entrada:
std::vector<std::vector<long long>> scores = {
{60},
{60, 60}
};
Saída esperada:
long long expected = 0;
Entrada:
long[][] scores = new long[][] {
new long[] {60},
new long[] {60, 60}
};
Saída esperada:
long expected = 0;
Explicação
Both averages are 60; the tie goes to the smaller index, 0.
Como abordar
Tente sozinho primeiro e depois abra uma dica de cada vez.
Dica 1
Compare os alunos pela média, não por uma única prova.
Dica 2
Calcule a média de cada linha e mantenha o melhor índice visto até agora.
Dica 3
Quando as médias empatam, mantenha o aluno anterior em vez de substituí-lo.
Complexidade esperada
tempo O(total scores), espaço extra O(1)
Referências
Este desafio foi adaptado para o CodeUtility. Siga o enunciado e as restrições acima.