मान लीजिए हमारे पास nums नामक संख्याओं की एक लिस्ट है। हमें जोड़े i < j की संख्या ढूंढनी है जैसे कि nums[i] और nums[j] समान हैं।
उदाहरण के लिए, यदि इनपुट है nums = [5, 4, 5, 4, 4], तो आउटपुट होगा 4, क्योंकि हमारे पास इंडेक्स जोड़े जैसे (0, 2), (1, 3), (1, 4) और (3, 4) हैं।
समाधान दृष्टिकोण
प्रत्येक अद्वितीय तत्व की फ्रीक्वेंसी गिनें। फ्रीक्वेंसी f वाले तत्व के लिए, यह f * (f - 1) / 2 जोड़े योगदान देता है। सभी तत्वों पर योग करें।
c = Counter(nums)की गणना करें।count = 0आरंभ करें।- प्रत्येक फ्रीक्वेंसी
nके लिएc.values()में:count += n * (n - 1) // 2।
countलौटाएं।
पायथन कार्यान्वयन
from collections import Counter
def solve(nums):
c = Counter(nums)
count = 0
for n in c.values():
count += n * (n - 1) // 2
return count
nums = [5, 4, 5, 4, 4]
print(solve(nums))
इनपुट
[5, 4, 5, 4, 4]
आउटपुट
4