Die Aufgabe bei dieser Herausforderung besteht darin, Elemente eines Arrays in Zeiträume zu verschieben. Die Eingabe besteht aus einem nicht abnehmenden Array positiver Ganzzahlen, die die Zeit der Ereignisse darstellen, und einer Ganzzahl, die die Größe jedes Bins darstellt. Beginnen wir mit einem Beispiel. Wir nennen das Input-Array A
und das Output-Array O
.
`A = [1,1,1,2,7,10]` and `bin_size = 2`.
`O = [4,0,0,1,1]`.
Warum ? Mit a bin_size = 2
haben wir die folgenden Intervalle: (0,2], (2,4], (4,6], (6,8], (8,10]
Wenn sich vier Elemente (1,1,1,2)
innerhalb des ersten Intervalls befinden (0,2]
, keines im zweiten und dritten Intervall, eines 7
im Intervall (6,8]
und eines 10
im Intervall (8,10]
.
Ihr Code sollte jedes Längenintervall berücksichtigen, bin_size
beginnend mit 0
und zählen, wie viele Zahlen A
in jedem enthalten sind. Sie sollten immer das rechte Ende eines Intervalls in eine Bin einbeziehen, damit im obigen Beispiel 2
die Anzahl von berücksichtigt wird 4
. Ihr Code sollte in linearer Zeit in der Summe der Längen der Eingabe und Ausgabe ausgeführt werden.
Mehr Beispiele:
`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]`.
Sie können davon ausgehen, dass die Ein- und Ausgabe in jedem Format erfolgen kann, das Sie für zweckmäßig halten. Sie können beliebige Sprachen und Bibliotheken verwenden.
bin_size
ist? Sollten wir wirklich damit umgehen? Die meisten Antworten scheinen dies zu tun, aber in diesem Fall wäre es hilfreich, einen Testfall für dieses Szenario hinzuzufügen, um Verwirrung zu vermeiden.
0
s erlaubt? Also zurück[2,0,1,1,1,0]
statt[2,0,1,1,1]
?