📝 Descrição
Maria plays college basketball and wants to go pro. Each season she maintains a record of her play. She tabulates the number of times she breaks her season record for most points and least points in a game. Points scored in the first game establish her record for the season, and she begins counting from there.
📌 Exemplos
Examplo 1:
scores = [12, 24, 10, 24]
Game | Score | Minimum | Maximum | Min | Max |
---|---|---|---|---|---|
0 | 12 | 12 | 12 | 0 | 0 |
1 | 24 | 12 | 24 | 0 | 1 |
2 | 10 | 10 | 24 | 1 | 1 |
3 | 24 | 10 | 24 | 1 | 1 |
✅ Casos de teste
Caso 1
Entrada
9 10 5 20 20 4 5 2 25 1
Saída
2 4
🚀 Como resolvi?
Temos de analisar rodada a rodada e ir anotando as mudanças que nos interessam, além de termos de marcarmos o maior e menor elemento visto até agora.
1º rodada:
Games | 0 | 1 |
---|---|---|
Scores | 10 | 5 |
High Scores | 10 | 10 |
Low Scores | 10 | 5 |
Tanto o maior valor, quanto o menor, estão na primeira posição do scores
. Se de 0 para 1 termos um incremento ou decremento, contabilizamos-o e ajustamos os holders do maior/menor valor.
2º rodada
Games | 0 | 1 | 2 |
---|---|---|---|
Scores | 10 | 5 | 20 |
High Scores | 10 | 10 | 20 |
Low Scores | 10 | 5 | 5 |
3º rodada
Games | 0 | 1 | 2 | 3 |
---|---|---|---|---|
Scores | 10 | 5 | 20 | 20 |
High Scores | 10 | 10 | 20 | 20 |
Low Scores | 10 | 5 | 5 | 5 |
4ª rodada
Games | 0 | 1 | 2 | 3 | 4 |
---|---|---|---|---|---|
Scores | 10 | 5 | 20 | 20 | 4 |
High Scores | 10 | 10 | 20 | 20 | 20 |
Low Scores | 10 | 5 | 5 | 5 | 4 |
🛠️ Implementação
def breakingRecords(scores):
highest_score_count = lowest_score_count = 0
highest_score = lowest_score = scores[0]
for score in scores[1:]:
if score < lowest_score:
lowest_score = score
lowest_score_count += 1
elif score > highest_score:
highest_score = score
highest_score_count += 1
return [highest_score_count, lowest_score_count]
🧠 O que aprendemos?
Dividir o problema em problema menores sempre nos ajudará.