Giriş:
Bu iki SO sorusundan esinlenerek (aynı sınıftan kuşku duyulmuyor ): öğeleri, java ve bir dizinin bitişik olmayan öğelerinin Maksimum toplamının, yazdırılacak olan bitişik elemanlar java'sı olmadan ve maksimum toplamın alt dizisine yazdırın .
Meydan okuma:
Bir tamsayı listesi verildiğinde, en yüksek toplamı olan bitişik olmayan öğelerden oluşan bir alt dizilim çıkar. İşte bazı örnekler:
[1,2,3,-1,-3,2,5]
0 tabanlı endekslerde[1,3,5]
(toplamla9
) sonuçlanır[0,2,6]
.[4,5,4,3]
ya da neden olur[4,4]
: (a toplamı8
0 tabanlı endekslerine)[0,2]
veya[5,3]
(aynı zamanda bir miktar ile8
0 tabanlı endekslerine)[1,3]
.[5,5,10,100,10,5]
0 tabanlı endekslerde[5,100,5]
(toplamla110
) sonuçlanabilir[0,3,5]
veya[1,3,5]
.
Yukarıdaki bu örneklerde en önemlisi, elemanları içeren endeksler birbirlerinden en az 2 ayrıdır. Örneğe [5,5,10,100,10,5]
daha derinlemesine bakarsak: bitişik olmayan öğeleri içeren aşağıdaki potansiyel alt dizilime sahibiz; altındaki endeksleri ile; toplamları bunun altında olduğunda:
[[5],[10],[100],[10],[5],[5],[100,5],[10,5],[10,10],[5,5],[5,10],[5,100],[5,5],[5,10],[5,100],[5,10],[5,100,5],[5,100,5],[5,10,5],[5,10,10]] // non-adjacent subsequences
[[5],[ 4],[ 3],[ 2],[1],[0],[ 3,5],[ 2,5],[ 2, 4],[1,5],[1, 4],[1, 3],[0,5],[0, 4],[0, 3],[0, 2],[1, 3,5],[0, 3,5],[0, 2,5],[0, 2, 4]] // at these 0-based indices
[ 5, 10, 100, 10, 5, 5, 105, 15, 20, 10, 15, 105, 10, 15, 105, 15, 110, 110, 20, 25] // with these sums
^ ^ // and these two maximums
Maksimum toplamlar olduğundan 110
, [5,100,5]
sonuç olarak çıkarız.
Meydan okuma kuralları:
- İndeks + değerinin anahtar / değer çiftlerini çıkarmanıza izin verilir. Yani yerine
[5,100,5]
çıkış can[[0,5],[3,100],[5,5]]
veya[[1,5],[3,100],[5,5]]
(veya sonucu[[1,5],[4,100],[6,5]]
/[[2,5],[4,100],[6,5]]
1 tabanlı indeksleme kullanılan yerine 0 tabanlı iken).- Anahtar-değer çiftleri kullanıyorsanız, bunlar aynı zamanda eşleştirilmiş indekse göre hangi değerlerin ifade edildiğinin açık olduğu için ters veya rasgele sırada da olabilirler.
- Sadece değerleri olmayan endeksleri çıkarmak yasaktır. Değerleri veya anahtar / değer çiftleri olarak değerleri / indeksleri (veya seçtiğiniz anahtar değer çiftleri mümkün değilse, anahtar / değer çiftleri olarak aynı büyüklükteki 'anahtarlar ve' değerler için iki ayrı liste) vermelidir.
- Tüm olası alt eklerin yalnızca bir tane yerine maksimum toplamla çıkmasına izin verilir.
- Örneklerden görebileceğiniz gibi, giriş listesi negatif ve kopyalanmış değerler de içerebilir. Giriş tam sayılarının aralığında olduğunu varsayabilirsiniz .
- Çıktı listesi boş olamaz ve her zaman en az bir öğe içermelidir (bir liste yalnızca negatif değerler içeriyorsa, en düşük tek negatif değeri içeren bir liste sonuç olarak çıkarılır - son iki test durumuna bakın).
- Olası bir çıktı varsa ancak birden fazla farklı dizin için, her ikisinin de kopya görünmesine rağmen çıktısı alınmasına izin verilir. (yani yukarıdaki örnek,
[[5,100,5],[5,100,5]]
her iki olası indeks kombinasyonu için çıktı verebilir ).
Test durumları:
Input: Possible outputs: At 0-based indices: With sum:
[1,2,3,-1,-3,2,5] [1,3,5] [0,2,6] 9
[4,5,4,3] [4,4]/[5,3] [0,2]/[1,3] 8
[5,5,10,100,10,5] [5,100,5] [0,3,5]/[1,3,5] 110
[10] [10] [0] 10
[1,1,1] [1,1] [0,2] 2
[-3,7,4,-2,4] [7,4] [1,4] 11
[1,7,4,-2] [7] [1] 7
[1,2,-3,-4,5,6,-7] [2,6] [1,5] 8
[800,-31,0,0,421,726] [800,726]/[800,0,726] [0,5]/[0,3,5]/[0,2,5] 1526
[-1,7,8,-5,40,40] [8,40] [2,4]/[2,5] 48
[-5,-18,-3,-1,-10] [-1] [3] -1
[0,-3,-41,0,-99,-2,0] [0]/[0,0]/[0,0,0] [0]/[3]/[6]/[0,3]/
[0,6],[3,6]/[0,3,6] 0
powerset
alt kümeleri nedir? ama bir takım ek iade ediyorsun gibi görünüyor? [4,5,4,3], [4,4] 'ün herhangi biriyle sonuçlanacaktı [4,4] açıkça bir küme değildi.
[5,100,5]
üçüncü örneğiniz için iki kez.