链接: https://leetcode.cn/problems/k-diff-pairs-in-an-array/
题意
给你一个整数数组 nums 和一个整数 k,请你在数组中找出 不同的 k-diff 数对,并返回不同的 k-diff 数对 的数目
k-diff 数对定义为一个整数对 (nums[i], nums[j]) 满足两数之差为k
解法
想到的两种解法
第一种是用哈希表存储每个数字出现情况,然后判断一下以它作为其中一个数的k-diff另一个数有没有出现过
统计一下出现的情况 k=0的情况需要单独处理一下
代码中有一些细节
第二种做法是双指针(尺取法)
首先排序,然后计算根据两数之差的情况移动指针
还需要考虑去重
代码
哈希表
1 | class Solution { |
尺取法
1 | class Solution { |