Zadaniem w tym wyzwaniu jest umieszczenie elementów tablicy w przedziałach czasowych. Dane wejściowe będą stanowić nie malejącą tablicę dodatnich liczb całkowitych reprezentujących czas zdarzeń oraz liczbę całkowitą reprezentującą rozmiar każdego przedziału. Zacznijmy od przykładu. Nazywamy tablicę wejściową A
i tablicę wyjściową O
.
`A = [1,1,1,2,7,10]` and `bin_size = 2`.
`O = [4,0,0,1,1]`.
Dlaczego ? Za pomocą a bin_size = 2
mamy następujące przedziały:, w (0,2], (2,4], (4,6], (6,8], (8,10]
których cztery elementy (1,1,1,2)
znajdują się w pierwszym przedziale (0,2]
, żaden w drugim i trzecim przedziale, jeden 7
w przedziale (6,8]
i jeden 10
w przedziale (8,10]
.
Twój kod powinien uwzględniać każdy przedział długości, bin_size
zaczynając od, 0
i liczyć, ile jest w A
nim liczb . Zawsze powinieneś umieszczać prawy koniec przedziału w pojemniku, więc w powyższym przykładzie 2
jest on uwzględniony w liczbie 4
. Twój kod powinien działać w czasie liniowym jako suma długości danych wejściowych i wyjściowych.
Więcej przykładów:
`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]`.
Możesz założyć, że dane wejściowe i wyjściowe można podawać w dowolnym dogodnym dla siebie formacie. Możesz używać dowolnych języków i bibliotek.
bin_size
, czy naprawdę powinniśmy sobie z tym poradzić? Wydaje się, że większość odpowiedzi tak, ale jeśli tak, dobrze byłoby dodać przypadek testowy dla tego scenariusza, aby zapobiec nieporozumieniom.
0
dozwolone są wyjścia ze znakami końcowymi ? Więc wracasz[2,0,1,1,1,0]
zamiast[2,0,1,1,1]
?