Tôi đã thử một vấn đề về cuộc thi hackerrank để giải trí và có câu hỏi này. Tôi đã sử dụng itertools cho mục đích này, đây là mã:Cách tìm sản phẩm tối đa của hai yếu tố trong danh sách?
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)
Có cách nào khác hiệu quả hơn này không? Khi tôi nhận được lỗi thời gian trên một số trường hợp thử nghiệm mà tôi không thể truy cập (như một cuộc thi nhỏ của nó).
tính trước 'a * b' khi max không phải là giá trị tối đa bạn sẽ lưu một vài hướng dẫn. –
@ Jean-FrançoisFabre không hiểu rõ bạn, bạn có thể xây dựng được không? – Maverick
Bạn không chỉ cần tìm hai yếu tố cá nhân lớn nhất và nhân chúng? (và cũng là hai yếu tố tiêu cực thấp nhất nếu bạn cho phép số âm) – khelwood