fork download
  1. import java.util.*;
  2.  
  3. class Main {
  4. public static int countPairs(int[] nums, int target) {
  5. Map<Integer, Integer> map = new HashMap<>();
  6. int cnt=0;
  7.  
  8. for (int i = 0; i < nums.length; ++i) {
  9.  
  10. // abs(nums[i] - nums[j]) == target
  11. // ----> nums[i] = nums[j] + target
  12. // ----> nums[i] = nums[j] - target
  13.  
  14. int num=target+nums[i];
  15. if(map.containsKey(num)){
  16. cnt+=map.get(num);
  17. }
  18.  
  19. num=nums[i]-target;
  20. if(map.containsKey(num)){
  21. cnt+=map.get(num);
  22. }
  23.  
  24. map.put(nums[i], map.getOrDefault(nums[i],0)+1);
  25. }
  26. return cnt;
  27. }
  28.  
  29. public static void main(String[] args) {
  30. Scanner sc=new Scanner(System.in);
  31. int n=sc.nextInt();
  32. int[] nums = new int[n];
  33. for(int i=0;i<n;i++){
  34. nums[i]=sc.nextInt();
  35. }
  36. int target = sc.nextInt();
  37. int count=countPairs(nums,target);
  38. System.out.println("Number of pairs with absolute difference "+target+" : "+count);
  39. sc.close();
  40. }
  41. }
  42.  
Success #stdin #stdout 0.23s 60832KB
stdin
5
1 5 3 4 2
2
stdout
Number of pairs with absolute difference 2 : 3