给定一个长度为 n 的整数数组 nums ,和一个正整数 k,你需要输出不同的 k-dis 数对数量。
k-dis 数对定义为一个整数对
,满足
,且 
数据范围:
,
,
[3,1,4,6,5],3
2
(4,1),(6,3)
[3,1,4,6,4],3
2
(4,1) (6,3) 虽然有两个 (4,1) 数对,但只统计不同的数对
import java.util.*;
public class Solution {
public int k_dis(ArrayList<Integer> nums, int k) {
int n = nums.size();
int ans = 0;
Set<Integer> set = new HashSet<>();
for (int a : nums) set.add(a);
for (int a : set) {
if (set.contains( a - k)) ans++;
if (set.contains( a + k)) ans++;
}
return ans / 2;
}
}