मैंने इस कोड को लागू किया:

अजगर3

n = int(input())
a = [int(x) for x in input().split()]
c = list()
for i in range(0,n):
    for j in range (1,n):
        if a[i] != a[j]:
            m = a[i]*a[j]
            c.append(m)

        else:
            continue

print(max(c))

आउटपुट त्रुटि

विफल मामला #4/17: समय सीमा पार हो गई (उपयोग किया गया समय: 10.02/5.00, उपयोग की गई मेमोरी: 20910080/536870912।)

क्या कोई कृपया समय कम करने के लिए सही कोड सुझा सकता है

0
Shoaib Khan 14 पद 2018, 22:29

1 उत्तर

सबसे बढ़िया उत्तर

यदि आप दी गई सूची में से केवल दो तत्वों के सबसे बड़े उत्पाद की तलाश में हैं, तो पूरी सूची पर डबल लूप करने की कोई आवश्यकता नहीं है। आप जानते हैं कि सबसे बड़ा गुणनफल उन संख्याओं के युग्म का गुणनफल होगा जो 0 से सबसे दूर हैं और जिनका चिन्ह एक दूसरे के समान है।

# n is not actually needed in this case
n = int(input())

# sort the list
a = sorted([int(x) for x in input().split()])

# the largest product will either come from the last two numbers (if both are positive) or the first two (if both are negative)
print(max(a[-1]*a[-2], a[0]*a[1]))
2
mypetlion 14 पद 2018, 22:42