একটি অ্যারে nums দেওয়া আছে। এমন জোড়া (i, j) কতটি আছে যেখানে nums[i] = nums[j] কিন্তু i ≠ j।
উদাহরণ
ইনপুট: nums = [1, 3, 1, 3, 5]
আউটপুট: 4
কারণ জোড়াগুলো হল: (0,2), (2,0), (1,3), (3,1)
সমাধান পদ্ধতি
dনামে একটি নতুন ম্যাপ/ডিকশনারি তৈরি করুন।nums-এর প্রতিটিcএর জন্য:d[c] := d[c] + 1যদিcইতিমধ্যেd-তে থাকে, অন্যথায় ১।
res := 0ইনিশিয়ালাইজ করুন।- যেসব
cএর জন্যd[c] > 1:res := res + (d[c] * (d[c] - 1))
resরিটার্ন করুন।
পাইথন ইমপ্লিমেন্টেশন
def solve(nums):
d = {}
for c in nums:
d[c] = d.get(c, 0) + 1
res = 0
for c in d:
if d[c] > 1:
res += d[c] * (d[c] - 1)
return res
# টেস্ট
nums = [1, 3, 1, 3, 5]
print(solve(nums)) # আউটপুট: 4
ইনপুট
[1,3,1,3,5]
আউটপুট
4