在Python中计算数组元素相同的索引对的程序
假设我们有一个名为nums的数字列表。我们必须找到有多少对i < j,使得nums[i]和nums[j]相同。
因此,如果输入是nums=[5,4,5,4,4],那么输出将为4,因为我们有索引对(0,2),(1,3),(1,4)和(3,4)。
要解决这个问题,我们将遵循以下步骤 –
- c:包含nums中每个元素出现频率的列表
-
count:0
-
对于c的所有值的列表中的每个n,请执行以下操作-
- count:count +(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))
输入
[5,4,5,4,4]
输出
4