Bu basit zorlukta, L
negatif olmayan tamsayılardan oluşan bir girdi dizisi ve b
0'dan büyük ancak uzunluğundan fazla olmayan bir dizi bölme verilir L
. Kodunuz M
, uzunluğu olan b
ve diziyi bölen yeni bir dizi döndürmelidir L
. Bu en kolay örneklerle açıklanmıştır.
L = [1,0,5,1]
ve b = 2
geri döner M = [1,6]
.
L = [0,3,7,2,5,1]
ve b = 3
geri döner M = [3,9,6]
.
Şimdiye kadar, çok basit. Ancak bu soruda b
mutlaka bölünmek zorunda değildir len(L)
. Bu durumda son bölmede telafi etmek için daha az sayı bulunur.
Muhtemelen sonuncusu hariç her bölme, toplamına katkıda bulunan aynı sayıda sayıya sahip olmalıdır. Son bölmede, diğer bölmelerden daha fazla sayı bulunmamalıdır. Son bölmede, diğer kurallara bağlı olarak mümkün olduğunca çok sayıda sayı olmalıdır.
L = [0,3,7,2,5,1]
ve b = 4
geri döner M = [3,9,6,0]
. M = [10,8,0,0]
üncü kutuda kutulara katkıda bulunan adların sayısı olmadığından kabul edilebilir bir çıktı değildir 1
ve 2
.
L = [0,3,7,2,5]
ve b = 2
geri döner M = [10,7]
. M = [3, 14]
son bölmede buna 3
katkıda bulunan öğeler olacağından kabul edilebilir bir çıktı değildir, ancak ilk bölmede yalnızca öğe bulunur 2
.
L = [1,1,1,1,1,1,1]
ve b = 3
geri döner M = [3,3,1]
.
Son kural olarak, kodunuzun doğrusal zamanda çalışması gerekir.
İstediğiniz dil veya kitaplıkları kullanabilirsiniz ve girdinin uygun bulduğunuz şekilde sağlandığını varsayabilirsiniz.
Çözülemeyen bazı girdiler olduğu ortaya çıkıyor. Örneğin [1,1,1,1,1]
ve b=4
. Kodunuz bu girişler için istediği her şeyi verebilir.
your code must run in linear time
- Bunu doğal olarak oldukça garip takip etmeyen herhangi bir algoritma bulurdum