假设我们有一个数组 nums。我们必须找到有多少对 (i,j) 使得 nums[i] = nums[j] 但 i 与 j 不同。
因此,如果输入类似于 nums = [1,3,1,3,5],那么输出将是 4,因为这些对是 (0,2)、(2,0)、(1,3) 和(3,1)
让我们看看以下实现以获得更好的理解 -
def solve(nums): d = {} for c in nums: d[c] = d[c] + 1 if c in d.keys() else 1 res = 0 for c in (x for x in d if d[x] > 1): res += (d[c] * (d[c]-1)) return res nums = [1,3,1,3,5] print(solve(nums))
[1,3,1,3,5]输出结果
4