在Python中计算数组元素相同的索引对的程序

在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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程