Jayakrishna14

Count Special Triplets

Jun 15th, 2025
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.88 KB | None | 0 0
  1. class Solution {
  2.     public int specialTriplets(int[] nums) {
  3.         final int MOD = 1000000007;
  4.         final int n = nums.length;
  5.        
  6.         HashMap<Integer, Integer> map1 = new HashMap<>();
  7.         for(int num: nums) {
  8.             map1.put(num, map1.getOrDefault(num, 0) + 1);
  9.         }
  10.  
  11.         HashMap<Integer, Integer> map2 = new HashMap<>();
  12.        
  13.         long triplets = 0;
  14.        
  15.         for(int i=0; i<n; i++) {
  16.  
  17.             map1.put(nums[i], map1.get(nums[i]) - 1);
  18.            
  19.             long leftFreq = map2.getOrDefault(nums[i] * 2, 0);
  20.             long rightFreq = map1.getOrDefault(nums[i] * 2, 0);  
  21.        
  22.             long currTriplets = (leftFreq * rightFreq) % MOD;
  23.             triplets = (triplets + currTriplets) % MOD;
  24.  
  25.             map2.put(nums[i], map2.getOrDefault(nums[i], 0) + 1);
  26.         }
  27.  
  28.         return (int) triplets;
  29.     }
  30. }
Tags: Java
Advertisement
Add Comment
Please, Sign In to add comment