ধরুন, nums নামে একটি সংখ্যা তালিকা আছে, যাতে уникал পজিটিভ নাম্বারস nums আছে। আমাদের nums-থেকে (a, b, c, d) রূপে চতুর্দল (quadruples) সংখ্যা বের করতে হবে যাতে a*b = c*d, এবং a, b, c, d সবাই nums-এর দীর্ঘ উপাদান।
সুতরাং, যদি ইনপুট হয় nums = [3, 6, 4, 8], তবে আউটপুট হবে 8, কারণ চতুর্দলগুলো হল [[3,8,6,4], [3,8,4,6], [8,3,6,4], [8,3,4,6], [6,4,3,8], [4,6,3,8], [6,4,8,3], [4,6,8,3]]।
এটি সমাধান করার জন্য, আমরা নিচের ধাপগুলো অনুসরণ করব:
c := একটি নতুন ম্যাপn := nums-এর সাইজiin range0ton - 1এর জন্য, করুন:jin rangei + 1ton - 1এর জন্য, করুন:x := nums[i] * nums[j]c[x] := 1 + (c[x] যদি উপলব্ধ থাকে, অন্যথায় 0)
ret := 0c-এর সকল ভ্যালুতেxএর জন্য, করুন:ret := ret + x * (x - 1)
ret * 4ফেরত দিন
উদাহরণ
বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:
def solve(nums):
c = {}
n = len(nums)
for i in range(n):
for j in range(i + 1, n):
x = nums[i] * nums[j]
c[x] = c.get(x, 0) + 1
ret = 0
for x in c.values():
ret += x * (x - 1)
return ret * 4
nums = [3, 6, 4, 8]
print(solve(nums))
ইনপুট
[3, 6, 4, 8]
আউটপুট
8