Bu meydan okumadaki görev, bir dizinin elemanlarını zaman bölmelerine koymaktır. Girdi, olayların zamanını temsil eden azalmayan pozitif bir tamsayı dizisi ve her bir bölmenin boyutunu temsil eden bir tamsayı olacaktır. Bir örnekle başlayalım. Girdi dizisini A
ve çıktı dizisini çağırıyoruz O
.
`A = [1,1,1,2,7,10]` and `bin_size = 2`.
`O = [4,0,0,1,1]`.
Neden ? A ile bin_size = 2
aşağıdaki aralıklara sahip olacağız: (0,2], (2,4], (4,6], (6,8], (8,10]
burada dört öğe (1,1,1,2)
ilk aralıkta (0,2]
, hiçbiri ikinci ve üçüncü aralıklarda, biri 7
aralıkta (6,8]
ve biri 10
aralıkta (8,10]
.
Kodunuz uzunluğu her aralığını dikkate almalıdır bin_size
gelen başlangıç 0
ve kaç numara saymak A
her vardır. Yukarıdaki örnekte 2
sayıya dahil edilmesi için her zaman bir bölmenin sağ ucunu bir kutuya eklemeniz gerekir 4
. Kodunuz, girdi ve çıktı uzunluklarının toplamı olarak doğrusal sürede çalışmalıdır.
Daha fazla örnek:
`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]`.
Giriş ve çıktının uygun bulduğunuz herhangi bir biçimde verilebileceğini varsayabilirsiniz. İstediğiniz dilleri ve kütüphaneleri kullanabilirsiniz.
bin_size
, bunları gerçekten ele almalıyız? Çoğu yanıtın öyle olduğu anlaşılıyor, ancak öyleyse, karışıklığı önlemek için bu senaryo için bir test örneği eklemek güzel olurdu.
0
s olan çıktılara izin veriliyor mu? Bunun[2,0,1,1,1,0]
yerine geri[2,0,1,1,1]
mi dönüyorsun ?