Il compito di questa sfida è mettere gli elementi di un array in intervalli di tempo. L'input sarà un array non decrescente di numeri interi positivi che rappresentano il tempo degli eventi e un numero intero che rappresenta la dimensione di ciascun bin. Cominciamo con un esempio. Chiamiamo array di input A
e array di output O
.
`A = [1,1,1,2,7,10]` and `bin_size = 2`.
`O = [4,0,0,1,1]`.
Perché ? Con a bin_size = 2
, avremo i seguenti intervalli:, in (0,2], (2,4], (4,6], (6,8], (8,10]
cui quattro elementi si (1,1,1,2)
trovano nel primo intervallo (0,2]
, nessuno nel secondo e terzo intervallo, uno 7
nell'intervallo (6,8]
e uno 10
nell'intervallo (8,10]
.
Il tuo codice dovrebbe considerare ogni intervallo di lunghezza a bin_size
partire da 0
e contare quanti numeri A
ci sono in ciascuno. Dovresti sempre includere l'estremità destra di un intervallo in un cestino, quindi nell'esempio sopra 2
è incluso nel conteggio di 4
. Il codice dovrebbe essere eseguito in tempo lineare nella somma delle lunghezze dell'input e dell'output.
Altri esempi:
`A = [1,2,7,12,15]` and `bin_size = 5`.
`O = [2, 1, 2]`.
`A = [1,2,7,12,15]` and `bin_size = 3`.
`O = [2,0,1,1,1]`.
Puoi presumere che input e output possano essere dati in qualsiasi formato che ritieni conveniente. Puoi usare tutte le lingue e le librerie che ti piacciono.
bin_size
, dovremmo davvero gestirle? Sembra che la maggior parte delle risposte lo faccia, ma in tal caso, sarebbe bello aggiungere un caso di prova per questo scenario per evitare confusione.
0
consentite uscite con messaggi finali ? Quindi tornare[2,0,1,1,1,0]
invece di[2,0,1,1,1]
?