ধরুন আমরা একটি অ্যারে সংখ্যা আছে. আমাদের খুঁজে বের করতে হবে জোড়ার সংখ্যা (i,j) এমন আছে যে nums[i] =nums[j] কিন্তু i j এর মত নয়।
সুতরাং, যদি ইনপুটটি সংখ্যার মত হয় =[1,3,1,3,5], তাহলে আউটপুট হবে 4, কারণ জোড়া (0,2), (2,0), (1,3) এবং (3,1)
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- d :=একটি নতুন মানচিত্র
- সংখ্যায় প্রতিটি c এর জন্য, করুন
- d[c] :=(d[c] + 1) যখন c উপস্থিত থাকে d অন্যথায় 1
- res :=0
- প্রতিটি c উপাদানের তালিকায় রয়েছে (d এর সব x এর জন্য x যেখানে d[x]> 1), করবেন
- res :=res +(d[c] *(d[c]-1))
- রিটার্ন রিটার্ন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
def সমাধান(সংখ্যা):d ={} সংখ্যায় c এর জন্য:d[c] =d[c] + 1 যদি c in d.keys() else 1 res =0 for c in (x এর জন্য x in d যদি d[x]> 1):res +=(d[c] * (d[c]-1)) রিটার্ন resnums =[1,3,1,3,5]print(solve(nums))প্রে>ইনপুট
[1,3,1,3,5]আউটপুট
4