La tarea en este desafío es colocar elementos de una matriz en contenedores de tiempo. La entrada será una matriz no decreciente de enteros positivos que representan el tiempo de los eventos, y un entero que representa el tamaño de cada bin. Comencemos con un ejemplo. Llamamos a la matriz de entrada A
y a la matriz de salida O
.
`A = [1,1,1,2,7,10]` and `bin_size = 2`.
`O = [4,0,0,1,1]`.
¿Por qué ? Con a bin_size = 2
, tendremos los siguientes intervalos: (0,2], (2,4], (4,6], (6,8], (8,10]
donde cuatro elementos (1,1,1,2)
están dentro del primer intervalo (0,2]
, ninguno en el segundo y tercer intervalo, uno 7
en el intervalo (6,8]
y uno 10
en el intervalo (8,10]
.
Su código debe considerar cada intervalo de longitud a bin_size
partir de 0
y contar cuántos números A
hay en cada uno. Siempre debe incluir el extremo derecho de un intervalo en un contenedor para que en el ejemplo anterior 2
se incluya en el recuento de 4
. Su código debe ejecutarse en tiempo lineal en la suma de las longitudes de la entrada y la salida.
Más ejemplos:
`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]`.
Puede suponer que la entrada y la salida se pueden dar en cualquier formato que considere conveniente. Puede usar cualquier idioma y biblioteca que desee.
bin_size
? Parece que la mayoría de las respuestas sí, pero si es así, sería bueno agregar un caso de prueba para este escenario para evitar confusiones.
0
permitidas las salidas con trailing s? ¿Entonces regresar en[2,0,1,1,1,0]
lugar de[2,0,1,1,1]
?