0
点赞
收藏
分享

微信扫一扫

LeetCode简单题之好对数的数目

题目

给你一个整数数组 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 <= nums.length <= 100
1 <= nums[i] <= 100
来源:力扣(LeetCode)

解题思路

  直接统计数组内元素的频率,假设i的频率为j,那么在原数组中不同位置的i就可以有j+j-1+j-2+…+1个好对数。

class Solution:
    def numIdenticalPairs(self, nums: List[int]) -> int:
        d={}
        ans=0
        for i in nums:
            d[i]=d.get(i,0)+1
            ans+=d[i]-1
        return ans

在这里插入图片描述

举报

相关推荐

0 条评论