Count Triplets

  • + 0 comments

    Whats wrong here guys,

    static long countTriplets(List<Long> arr, long r) {
    
        Map<Long, Long> leftDict = new HashMap<>();
        Map<Long, Long> rightDict = new HashMap<>(); 
        long tot = 0;
    
        for(int i=0; i<arr.size(); i++){
            rightDict.put(arr.get(i), rightDict.getOrDefault(i, 0L)+1);
        }
        for(int i=0; i<arr.size(); i++){
            long curr = arr.get(i);
            long left = 0;
            long right = 0;
    
            rightDict.put(curr, rightDict.getOrDefault(curr, 0L) - 1);
            leftDict.put(curr, leftDict.getOrDefault(curr, 0L) + 1);
    
            if(leftDict.containsKey(curr/r) && curr % r == 0){
                left = leftDict.get(curr/r);
            }
            if(rightDict.containsKey(curr*r)){
                right = rightDict.get(curr*r);
            }
            tot = tot + left * right;
        }
        return tot;
    }