给你一个整数数组 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