मैंने इस कोड को लागू किया:
अजगर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।)
क्या कोई कृपया समय कम करने के लिए सही कोड सुझा सकता है
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]))
संबंधित सवाल
नए सवाल
python
पायथन एक बहु-प्रतिमान है, गतिशील रूप से टाइप किया हुआ, बहुउद्देशीय प्रोग्रामिंग भाषा है। यह एक साफ और एक समान वाक्यविन्यास सीखने, समझने और उपयोग करने के लिए त्वरित होने के लिए डिज़ाइन किया गया है। कृपया ध्यान दें कि अजगर 2 आधिकारिक तौर पर 01-01-2020 के समर्थन से बाहर है। फिर भी, संस्करण-विशिष्ट पायथन सवालों के लिए, [अजगर -२.०] या [अजगर -३.x] टैग जोड़ें। पायथन वेरिएंट (जैसे, ज्योथन, PyPy) या लाइब्रेरी (उदा।, पांडस और न्यूमपी) का उपयोग करते समय, कृपया इसे टैग में शामिल करें।