সমস্যা বিবরণ
একটি সংখ্যার লিস্ট দেওয়া আছে। সবচেয়ে বড় পার্থক্য (absolute difference) রেখে যেসব জোড়া তৈরি হয় সেগুলো বের করতে হবে।
পদ্ধতি ১: heapq.nlargest() এবং itertools.combinations() ব্যবহার
সব সম্ভাব্য জোড়া বানান, পার্থক্য হিসাব করুন, nlargest(2, ...) দিয়ে শীর্ষ ২ টি বের করুন।
from itertools import combinations
from heapq import nlargest
listA = [21, 14, 30, 11, 17, 18]
res = nlargest(2, combinations(listA, 2), key=lambda sub: abs(sub[0] - sub[1]))
print("Pairs with maximum difference:", res) # [(30, 11), (14, 30)]
পদ্ধতি ২: combinations() এবং max() ব্যবহার
max() দিয়ে একটিই বের করুন।
from itertools import combinations
listA = [21, 14, 30, 11, 17, 18]
res = max(combinations(listA, 2), key=lambda sub: abs(sub[0] - sub[1]))
print("Pair with maximum difference:", res) # (30, 11)