ให้ลิสต์ nums นับคู่ i < j ที่ nums[i] == nums[j]
ตัวอย่าง: nums=[5,4,5,4,4] → 4 (คู่: (0,2),(1,3),(1,4),(3,4))
ขั้นตอน (Combinatorics)
c = Counter(nums)- แต่ละค่าที่ปรากฏ
nครั้ง ให้n*(n-1)/2คู่ - รวมทั้งหมด
ตัวอย่างโค้ด
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)) # Output: 4อินพุต
[5, 4, 5, 4, 4]
เอาต์พุต
4