解题思路:
用双指针的方法,一个指针i从0开始走,另一个指针j不断找i所在位置的对应k-diff,代码如下:
class Solution {
public:
int findPairs(vector<int>& nums, int k) {
int n = nums.size();
int ans = 0;
sort(nums.begin(), nums.end());
for(int i = 0, j = 0; i < n; i ++) {
if(i == 0 || nums[i] != nums[i - 1]) {
while(j < n && (nums[j] - nums[i] < k || j <= i)) {
j ++;
}
if(j < n && nums[j] - nums[i] == k) {
ans ++;
}
}
}
return ans;
}
};