Задача в этой задаче состоит в том, чтобы поместить элементы массива в временные интервалы. Входные данные будут неубывающим массивом натуральных чисел, представляющих время событий, и целым числом, которое представляет размер каждого бина. Давайте начнем с примера. Мы называем входной массив A
и выходной массив O
.
`A = [1,1,1,2,7,10]` and `bin_size = 2`.
`O = [4,0,0,1,1]`.
Почему ? С a bin_size = 2
у нас будут следующие интервалы: (0,2], (2,4], (4,6], (6,8], (8,10]
где четыре элемента (1,1,1,2)
находятся в первом интервале (0,2]
, ни один во втором и третьем интервалах, один 7
в интервале (6,8]
и один 10
в интервале (8,10]
.
Ваш код должен учитывать каждый интервал длины, bin_size
начиная с, 0
и подсчитывать количество чисел A
в каждом. Вы всегда должны включать в правом конце интервала в бункере так и в приведенном выше примере 2
включается в подсчет 4
. Ваш код должен работать за линейное время в сумме длин входных и выходных данных.
Больше примеров:
`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]`.
Вы можете предположить, что ввод и вывод могут быть даны в любом удобном для вас формате. Вы можете использовать любые языки и библиотеки, которые вам нравятся.
bin_size
, мы должны действительно обрабатывать это? Кажется, что большинство ответов так и есть, но если это так, было бы неплохо добавить контрольный пример для этого сценария, чтобы избежать путаницы.
0
Разрешены ли выходы с трейлингом ? Так что вернемся[2,0,1,1,1,0]
вместо[2,0,1,1,1]
?