Próbowałem rozwiązać problem hakerów w konkursie na zabawę i pojawiło się to pytanie. użyłem itertools do tego, oto kod:Jak znaleźć maksymalny iloczyn dwóch elementów na liście?
import itertools
l = []
for _ in range(int(input())):
l.append(int(input()))
max = l[0] * l[len(l)-1]
for a,b in itertools.combinations(l,2):
if max < (a*b):
max = (a*b)
print(max)
jest ich każdy inny skuteczny sposób, niż to? Ponieważ otrzymuję błąd przekroczenia czasu w niektórych przypadkach testowych, do których nie mam dostępu (jako mały konkurs).
prekomputer 'a * b', gdy max nie jest maksimum, możesz zapisać kilka instrukcji. –
@ Jean-FrançoisFabre nie zrozumiałeś wyraźnie, czy mógłbyś to rozwinąć? – Maverick
Po prostu nie musisz znaleźć dwóch największych pojedynczych elementów i pomnożyć je? (a także dwa najniższe ujemne elementy, jeśli dopuszczasz liczby ujemne) – khelwood