数字(整数)で構成された2つのリストがあります。どちらも 200 万のユニークな要素を持っています。
リスト 1 から番号 a を、リスト 2 から番号 b を見つけたいのですが、それは -
1)a*b should be maximized.
2)a*b has to be smaller than certain limit.
これが私が思いついたものです:
maxpq = 0
nums = sorted(nums, reverse=True)
nums2 = sorted(nums2, reverse=True)
for p in nums:
n = p*dropwhile(lambda q: p*q>sqr, nums2).next()
if n>maxpq:
maxpq=n
print maxpq
助言がありますか?編集:私の方法は遅すぎます。1日以上かかります。