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 Aund 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 = 2haben 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 7im Intervall (6,8]und eines 10im Intervall (8,10].
Ihr Code sollte jedes Längenintervall berücksichtigen, bin_sizebeginnend mit 0und zählen, wie viele Zahlen Ain jedem enthalten sind. Sie sollten immer das rechte Ende eines Intervalls in eine Bin einbeziehen, damit im obigen Beispiel 2die 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_sizeist? 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.
0s erlaubt? Also zurück[2,0,1,1,1,0]statt[2,0,1,1,1]?