Menu
CoddyTech

Daily Temperatures

Você recebe a temperatura de cada dia em uma sequência de dias: temperatures[i] é a temperatura no dia i. Para cada dia, conte quantos dias você precisa esperar depois dele até chegar um dia estritamente mais quente. Se nenhum dia mais quente chegar depois, a espera desse dia será 0.

Retorne um array do mesmo tamanho, em que a entrada i é o tempo de espera do dia i.

Função

dailyTemperatures(temperatures: integer-array) → integer-array
temperaturesinteger-array
a temperatura de cada dia, em ordem
Retornainteger-array
para cada dia, o número de dias até um dia mais quente, ou 0 se não houver nenhum

Restrições

  • 1 ≤ temperatures.length ≤ 104
  • 30 ≤ temperatures[i] ≤ 100
  • Mais quente significa estritamente mais alta: um dia posterior com a mesma temperatura não conta.

Exemplos

Entrada
temperatures = [71, 69, 72, 70, 70, 75, 68]
Saída
[2, 1, 3, 2, 1, 0, 0]
Explicação
O dia 0 tem temperatura 71 e o primeiro dia mais quente é o dia 2, com 72, então ele espera 2 dias. Os dias 3 e 4 têm temperatura 70: o segundo 70 não é mais quente, então o dia 3 espera até o dia 5, com 75, ou seja, 2 dias. Nada depois de 75 ou 68 é mais quente, então ambos recebem 0.

lock icon+13 testes ocultos ao enviar

challenge icon

Para ir além

As temperaturas assumem apenas 71 valores, de 30 a 100. Como uma tabela indexada pela temperatura poderia responder todos os dias em uma única passagem da direita para a esquerda, e qual é o custo dessa passagem?

Redefinir código
def dailyTemperatures(temperatures):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

temperatures = [71, 69, 72, 70, 70, 75, 68]

Esperado

[2, 1, 3, 2, 1, 0, 0]