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
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau đây để hiểu rõ hơn
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