Muhtemelen eşit olmayan uzunluklarda iki tamsayı vektörü verildiğinde, boyut farkını telafi etmek için daha kısa vektöre eklenmiş sıfırlar eklenmiş iki vektör arasındaki karşılık gelen sayı çiftleri arasındaki maksimum sayıyı seçerek mümkün olan maksimum sonucu nasıl belirleyebilirim?
Örneğin, aşağıdaki iki vektörü girdi olarak düşünün:
[8 1 4 5]
[7 3 6]
Sıfır ve elde edilen toplamı ekleme seçenekleri şunlardır:
[0 7 3 6] => Maximums: [8 7 4 6] => Sum is: 25
[7 0 3 6] => Maximums: [8 1 4 6] => Sum is: 19
[7 3 0 6] => Maximums: [8 3 4 6] => Sum is: 21
[7 3 6 0] => Maximums: [8 3 6 5] => Sum is: 22
Bu nedenle, bu durumda, algoritma 25 dönmelidir.
Bunu, kaba vektör ile sıfır vektörü yerleştirmenin tüm permütasyonlarını hesaplayarak yapabilirim (yukarıda yapıldığı gibi), ancak bu, bir vektörün diğerinin tam olarak yarısı olduğu durumda hesaplama açısından pahalı ve en kötü olurdu.
Vektör uzunluğunda farklılık gösterse bile, cevabı doğrusal zamanda daha uzun vektörün uzunluğuyla orantılı olarak hesaplamanın bir yolu var mı? Değilse, seçilen faktöriyel permütasyon sayısından daha iyisini yapabilir miyiz?