1512. 好数对的数目
给你一个整数数组 nums 。
如果一组数字 (i,j) 满足 nums[i] == nums[j] 且 i < j ,就可以认为这是一组 好数对 。
返回好数对的数目。
示例 1:
输入:nums = [1,2,3,1,1,3]
输出:4
解释:有 4 组好数对,分别是 (0,3), (0,4), (3,4), (2,5) ,下标从 0 开始
示例 2:
输入:nums = [1,1,1,1]
输出:6
解释:数组中的每组数字都是好数对
示例 3:
输入:nums = [1,2,3]
输出:0
题目来源:力扣
解题思路:先利用字典存下所有数字和它们的个数,建立一个列表存入数量大于1的数量,然后利用求和公式求好对数的数量
代码如下:
class Solution(object):
def numIdenticalPairs(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
summ = 0
y_n = {}
for i in nums:
y_n[i] = y_n.get(i,0) + 1
listt = sorted([i for k,i in y_n.items() if i>1])
for i in listt:
summ += (i-1) + ((i-1)*(i-2))/2
return summ
提交结果: