532. K-diff Pairs in an Array
结果要unique,那就用set来记录。brute-force的方法是直接遍历组合,但这题可以利用一下unique的要求,把遍历变成搜索,对每个元素,搜索它右边的sublist里面有没有比它大k的元素,有的话就算一个解,不需要关心有多少个 。同样,比它小k的也是。
class Solution:
def findPairs(self, nums: List[int], k: int) -> int:
res = set()
if k < 0: return 0
for i in range(len(nums)):
if nums[i]+k in nums[i+1:]:
res.add((nums[i], nums[i]+k))
if nums[i]+k != nums[i]-k and nums[i]-k in nums[i+1:]:
res.add((nums[i]-k, nums[i]))
return len(res)
Last updated
Was this helpful?