A tarefa neste desafio é colocar elementos de uma matriz em intervalos de tempo. A entrada será uma matriz não decrescente de números inteiros positivos que representam a hora dos eventos e um número inteiro que representa o tamanho de cada posição. Vamos começar com um exemplo. Chamamos a matriz de entrada A
e a matriz de saída O
.
`A = [1,1,1,2,7,10]` and `bin_size = 2`.
`O = [4,0,0,1,1]`.
Por que ? Com a bin_size = 2
, teremos os seguintes intervalos:, (0,2], (2,4], (4,6], (6,8], (8,10]
onde quatro itens (1,1,1,2)
estão dentro do primeiro intervalo (0,2]
, nenhum no segundo e terceiro intervalos, um 7
no intervalo (6,8]
e outro 10
no intervalo (8,10]
.
Seu código deve considerar cada intervalo de comprimento a bin_size
partir de 0
e contar quantos números A
existem em cada um. Você sempre deve incluir a extremidade direita de um intervalo em uma posição para que o exemplo acima 2
seja incluído na contagem de 4
. Seu código deve ser executado em tempo linear na soma dos comprimentos da entrada e da saída.
Mais exemplos:
`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]`.
Você pode assumir que entrada e saída podem ser fornecidas em qualquer formato que achar conveniente. Você pode usar qualquer idioma e biblioteca que desejar.
bin_size
, devemos realmente lidar com isso? Parece que a maioria das respostas sim, mas se sim, seria bom adicionar um caso de teste para esse cenário para evitar confusão.
0
permitidas saídas com s à direita ? Então, retornando em[2,0,1,1,1,0]
vez de[2,0,1,1,1]
?