Python :: Aufgabe #361 :: Lösung #2

2 Lösungen Lösungen öffentlich
#361

n kleinste Paarsummen als Array

Anfänger - Python von JKooP - 05.06.2021 um 16:27 Uhr
Gegeben sind 2 sortierte Arrays (arr1, arr2) gleicher oder unterschiedlicher Länge
und eine Zahl (n) welche die maximale Anzahl der kleinsten auszugebenden Paarsummen vorgibt.
Jedes Array kann 1 bis zu 10.000 Zahlen der Größe +-1.000.000 beinhalten.
Der Wert für n soll nicht weniger als 1 und nicht mehr als 1.000 betragen.

Ziel soll es sein, die n kleinsten aller möglichen Paarsummen als Array zurückzugeben.

Beispiele:

arr1 = [1,2,3]; arr2 = [2,3,7]; n = 3
Lösung: [[1,2], [1,3], [2,2]], denn [1,2], [1,3], [1,7], [2,2], [2,3], [2,7], [3,2], [3,3], [3,7]
Summen: 3, 4, 8, 4, 5, 9, 5, 6, 10 => 3, 4, 4

arr1 = [1,1,2]; arr2 = [1,2,3]; n = 2
Lösung: [[1,1], [1,1]], denn [1,1], [1,2], [1,3], [1,1], [1,2], [2,3], [2,1], [2,2], [2,3]
Summen: 2, 3, 4, 2, 3, 5, 3, 4, 5

arr1 = [1,2]; arr2 = [-5]; n = 3
Lösung: [[1,-5], [2,-5]]
Summen: -4, -3

Schreibe eine Methode/Funktion, die obige Aufgabenstellung umsetzt.
Je nach Programmiersprache könne auch Vektoren, Listen, etc. verwendet werden.

Viel Spaß
#2
vote_ok
von Klaus (1960 Punkte) - 14.08.2021 um 22:37 Uhr
Quellcode ausblenden Python-Code
def solution(list_1, list_2, max_sum):
    solution = []
    for value_1 in list_1:
        for value_2 in list_2:
            if value_1 + value_2 <= max_sum:
                solution.append([value_1, value_2])
    return solution

print(solution(list_1 = [1,2,3], list_2 = [2,3,7], max_sum = 4))
print(solution(list_1 = [1,1,2], list_2 = [1,2,3], max_sum = 2))
print(solution(list_1 = [1,2], list_2 = [-5], max_sum = 3))

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben