题目地址:
https://leetcode.com/problems/count-number-of-pairs-with-absolute-difference-k/
给定一个长 n n n数组 A A A和一个正整数 k k k,求所有的使得 ∣ A [ i ] − A [ j ] ∣ = k |A[i]-A[j]|=k ∣A[i]−A[j]∣=k的数对 ( i , j ) (i,j) (i,j)的个数。
代码如下:
import java.util.HashMap;
import java.util.Map;
public class Solution {
public int countKDifference(int[] nums, int k) {
Map<Integer, Integer> map = new HashMap<>();
int res = 0;
for (int x : nums) {
res += map.getOrDefault(x - k, 0) + map.getOrDefault(x + k, 0);
map.put(x, map.getOrDefault(x, 0) + 1);
}
return res;
}
}
时空复杂度 O ( n ) O(n) O(n)。