Giả sử chúng ta có một danh sách các số được gọi là nums. Chúng ta phải tìm số cặp i
Vì vậy, nếu đầu vào là nums =[5, 4, 5, 4, 4], thì đầu ra sẽ là 4, vì Chúng ta có các cặp chỉ mục như (0, 2), (1, 3), (1, 4 ) và (3, 4).
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
c:=danh sách chứa tần số của từng phần tử có trong nums
đếm:=0
với mỗi n trong danh sách tất cả các giá trị của c, do
count:=count + tầng của (n * (n - 1)) / 2
số lần trả lại
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
Ví dụ
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))
Đầu vào
[5, 4, 5, 4, 4]
Đầu ra
4