用 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 的向下取整
返回 count
示例
让我们看以下实现来获得更好的理解
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
广告
数据结构
计算机网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP