Daha önce bir dizi ezme işlemini tanımladım
Bir çarpışmada diziyi soldan sağa okuyoruz. Bir noktada, aynı öğenin üst üste ikisiyle karşılaşırsak, ilkini kaldırır ve ikincisini iki katına çıkarırız.
Örneğin, aşağıdaki diziyi ezme süreci
[5,2,2,4]
^
[5,2,2,4]
^
[5,2,2,4]
^
[5,4,4]
^
[5,4,4]
^
[5,8]
^
Aynı öğenin birden çok kez daraltılabileceğini unutmayın. Örnekte tek geçişte 2,2,4
çöktü 8
.
Şimdi dizileri ezmek kolaydır, ne zor onları ezmektir. Göreviniz bir dizi pozitif tamsayı girdi olarak almak ve tekrar tekrar ezildiğinde girdiyi oluşturabilecek en büyük diziyi çıkarmaktır. Örneğin dizi [4]
, ezme ile oluşan ezme [2,2]
ile oluşturulur [1,1,1,1]
. Tamsayı olmayan değerlere [1,1,1,1]
sahip olamadığımız için daha fazla kırılamaz ve bu nedenle cevabımızdır.
Bu 0
tür diziler süresiz olarak genişletilebileceğinden, giriş dizinizde hiçbir zaman a almazsınız . Ayrıca hiçbir zaman yan yana aynı tek sayıya sahip bir dava almazsınız, bu gibi durumlar ezilmenin sonucu olamaz.
Bu kod golftür, bu nedenle cevaplar kaynaklarının boyutu bayt cinsinden ölçülür ve daha az bayt daha iyi olur.
Cevabınızı vermeden önce, bu zorluğun göründüğünden çok daha zor olduğunu söylemek istiyorum. Devam ederken sezginizi kontrol edin ve cevabınızın tüm test senaryolarını geçtiğinden emin olun.
Test Durumları
[] -> []
[5] -> [5]
[6] -> [3,3]
[8] -> [1,1,1,1,1,1,1,1]
[4,8] -> [1,1,1,1,1,1,1,1,1,1,2]
[2,8] -> [1, 1, 1, 1, 2, 1, 1, 1, 1]
[4,4] -> [1,1,1,1,1,1,1,1]
[1,>1,1,1,1,1,1,1,1,1,2]
, [2,>1,1,1,1,1,1,1,1,2]
, [2,1,>1,1,1,1,1,1,1,2]
, [2,2,>1,1,1,1,1,1,2]
, [2,2,1,>1,1,1,1,1,2]
, [2,2,2,>1,1,1,1,2]
, [2,2,2,1,>1,1,1,2]
, [2,2,2,2,>1,1,2]
, [2,2,2,2,1,>1,2]
, [2,2,2,2,2,>2]
, [2,2,2,2,4>]
, ikinci geçiş: [2,>2,2,2,4]
, [4,>2,2,4]
, [4,2,>2,4]
, [4,4,>4]
, [4,8>]
. Umarım bu onu temizler. Eğer bazı kod önceki soruya bakmak istiyorsanız kırma işlevi uygulayan cevapları vardır.
[4, 4]
dizisi kaldırılmalıdır, çünkü bu diziyi bir streç => ezilme dizisinden sonra asla alamayacağız, çünkü bu sona erecek[8]
[1,1,1,1,1,1,1,1,1,1,2]
üretiyoruz ? Bu olmalı , , , , , , , , , ?[4, 8]
[8, 4]
[1,>1,1,1,1,1,1,1,1,1,2]
[2,1,>1,1,1,1,1,1,1,2]
[2,>2,1,1,1,1,1,1,2]
[4,1,>1,1,1,1,1,2]
[4,2,1,>1,1,1,2]
[4,2,>2,1,1,2]
[4,>4,1,1,2]
[8,1,>1,2]
[8,2,>2]
[8,4]