[220209] K-diff Pairs in an Array

Given an array of integers nums and an integer k, return the number of unique k-diff pairs in the array.

k-diff pair is an integer pair (nums[i], nums[j]), where the following are true:

  • 0 <= i < j < nums.length
  • |nums[i] - nums[j]| == k

Notice that |val| denotes the absolute value of val.

class Solution:
    def findPairs(self, nums, k):

        # 记录匹配的元组
        temp = set()
        # 从大到小排序 (使 a > b): a - b == k --> a - k == b
        nums = sorted(nums, reverse=True)
        # 用字典记录:d = {a - k : a}    (d[a - k] = a)
        d = {}

        for each in nums:
            # 即 b == a - k
            if each in d.keys():
                # 记录下这组 (b, a)
                temp.add((each, d[each]))
            d[each - k] = each

        return len(temp)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值