LeetCode 532. 数组中的 k-diff 数对

给你一个整数数组 nums 和一个整数 k,请你在数组中找出 不同的 k-diff 数对,并返回不同的 k-diff 数对 的数目。

是719题目的简化版本,数组对都是使用滑窗计算。

class Solution:
    def findPairs(self, nums: List[int], k: int) -> int:
        # 滑窗计算nums[r] - nums[l] == k

        _len = len(nums)

        nums.sort()
        # print(nums)

        cnt = 0

        r = 1
        pre_l = float('inf')
        for l in range(_len):

            if pre_l == nums[l]:
                continue

            if r <= l:
                r = l + 1

            while r < _len and nums[r] - nums[l] < k:
                r += 1

            if r < _len and nums[r] - nums[l] == k:
                cnt += 1
                pre_l = nums[l]
        
        return cnt

你可能感兴趣的:(LeetCode 532. 数组中的 k-diff 数对)