Giriş
En bu diziyi gözlemlemek edelim: [3, 2, 4, 1, 1, 5, 1, 2]
.
Her eleman toplanması gereken alt tabakanın uzunluğunu gösterir. Yukarıdaki dizinin ilk elemanına bir göz atalım:
[3, 2, 4, 1, 1, 5, 1, 2]
^
İlk dizindeki öğe 3'tür , bu yüzden şimdi başlangıç konumu ile aynı dizine sahip üçlü bir alt dizgiyi alıyoruz:
[3, 2, 4]
İçine, bu sonuçlar özetlenebilir zaman , 9 , bu nedenle ilk elemanı alt dize toplamı grubu olduğu 9
.
Bunu, dizideki tüm öğeler için yaparız:
3 -> [3, 2, 4]
2 -> [2, 4]
4 -> [4, 1, 1, 5]
1 -> [1]
1 -> [1]
5 -> [5, 1, 2]
1 -> [1]
2 -> [2]
5 rakamının biraz garip bir durum olduğunu görebilirsiniz. Bu sayı dizinin uzunluğunu aşıyor:
[3, 2, 4, 1, 1, 5, 1, 2]
^ ^ ^ ^ ^
Diziyi geçen her şeyi görmezden geleceğiz, bu yüzden sadece kullanıyoruz [5, 1, 2]
.
Son adım her şeyi özetlemektir:
[3, 2, 4] -> 9
[2, 4] -> 6
[4, 1, 1, 5] -> 11
[1] -> 1
[1] -> 1
[5, 1, 2] -> 8
[1] -> 1
[2] -> 2
Ve bu çıkması gereken dizi:
[9, 6, 11, 1, 1, 8, 1, 2]
Görev
Pozitif (sıfır olmayan) tamsayıları olan boş olmayan bir dizi göz önüne alındığında, alt toplamı ayarlanan çıktı . Bu kod-golf , bu yüzden en küçük bayt sayısına sahip olan gönderim kazanıyor!
Test durumları
[1, 2, 3, 4, 5] -> [1, 5, 12, 9, 5]
[3, 3, 3, 3, 3, 3, 3, 3] -> [9, 9, 9, 9, 9, 9, 6, 3]
[5, 1, 2, 4, 1] -> [13, 1, 6, 5, 1]
[1] -> [1]