|
| 1 | +class Solution { |
| 2 | + |
| 3 | + private static final int MOD = 1_000_000_007; |
| 4 | + |
| 5 | + public int specialTriplets(int[] nums) { |
| 6 | + int result = 0; |
| 7 | + Map<Integer, Integer> leftFrequency = new HashMap<>(); |
| 8 | + Map<Integer, Integer> rightFrequency = new HashMap<>(); |
| 9 | + for (int num : nums) { |
| 10 | + rightFrequency.put(num, rightFrequency.getOrDefault(num, 0) + 1); |
| 11 | + } |
| 12 | + for (int num : nums) { |
| 13 | + rightFrequency.put(num, rightFrequency.getOrDefault(num, 0) - 1); |
| 14 | + int leftMultiple = leftFrequency.getOrDefault(num * 2, 0); |
| 15 | + int rightMultiple = rightFrequency.getOrDefault(num * 2, 0); |
| 16 | + result = (int) ((result + 1L * leftMultiple * rightMultiple) % MOD); |
| 17 | + leftFrequency.put(num, leftFrequency.getOrDefault(num, 0) + 1); |
| 18 | + } |
| 19 | + return result; |
| 20 | + } |
| 21 | +} |
0 commit comments