Menu
CoddyTech

Daily Temperatures

Ottieni la temperatura di ogni giorno in una sequenza di giorni: temperatures[i] è la temperatura del giorno i. Per ogni giorno, conta quanti giorni devi aspettare dopo di esso prima che arrivi un giorno più caldo. Se in seguito non arriva alcun giorno più caldo, l'attesa per quel giorno è 0.

Restituisci un array della stessa lunghezza in cui l'elemento i è l'attesa per il giorno i.

Funzione

dailyTemperatures(temperatures: integer-array) → integer-array
temperaturesinteger-array
la temperatura di ogni giorno, in ordine
Restituisceinteger-array
per ogni giorno, il numero di giorni che mancano a un giorno più caldo, oppure 0 se non ce n’è nessuno

Vincoli

  • 1 ≤ temperatures.length ≤ 104
  • 30 ≤ temperatures[i] ≤ 100
  • Più caldo significa strettamente più alto: un giorno successivo con la stessa temperatura non conta.

Esempi

Input
temperatures = [71, 69, 72, 70, 70, 75, 68]
Output
[2, 1, 3, 2, 1, 0, 0]
Spiegazione
Il giorno 0 è 71 e il primo giorno più caldo è il giorno 2, a 72, quindi aspetta 2 giorni. I giorni 3 e 4 sono entrambi a 70: il secondo 70 non è più caldo, quindi il giorno 3 aspetta fino al giorno 5, a 75, cioè 2 giorni. Dopo 75 o 68 non c’è nulla di più caldo, quindi entrambi ottengono 0.

lock icon+13 test nascosti all’invio

challenge icon

Per approfondire

Le temperature assumono solo 71 valori, da 30 a 100. In che modo una tabella indicizzata per temperatura potrebbe rispondere ogni giorno in un'unica passata da destra a sinistra, e quanto costa questa passata?

Ripristina il codice
def dailyTemperatures(temperatures):
    # Scrivi il codice qui
Casi di test

Caso 1

Caso 2

Caso 3

Input

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

Atteso

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