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. // nums[i] - nums[j] == target ----> nums[i] = nums[j] + target
  10. int num=target+nums[i];
  11. if(map.containsKey(num)){
  12. cnt+=map.get(num);
  13. }
  14. map.put(nums[i], map.getOrDefault(nums[i],0)+1);
  15. }
  16. return cnt;
  17. }
  18.  
  19. public static void main(String[] args) {
  20. Scanner sc=new Scanner(System.in);
  21. int n=sc.nextInt();
  22. int[] nums = new int[n];
  23. for(int i=0;i<n;i++){
  24. nums[i]=sc.nextInt();
  25. }
  26. int target = sc.nextInt();
  27. int count=countPairs(nums,target);
  28. System.out.println("Number of pairs with difference "+target+" : "+count);
  29. sc.close();
  30. }
  31. }
Success #stdin #stdout 0.23s 58788KB
stdin
5
1 5 3 4 2
2
stdout
Number of pairs with difference 2 : 2