diff --git a/3583. Count Special Triplets b/3583. Count Special Triplets new file mode 100644 index 0000000..edf625c --- /dev/null +++ b/3583. Count Special Triplets @@ -0,0 +1,18 @@ +class Solution { +public: + int specialTriplets(vector& nums) { + const int n = 100001, mod = 1000000007; + long ans = 0; + int hash[n], prev[n]; + for(int i = 0; i < n; i++) hash[i] = prev[i] = 0; + for(int i = 0; i < nums.size(); i++) hash[nums[i]]++; + for(int i = 1; i < nums.size() - 1; i++) { + prev[nums[i - 1]]++; + int j = nums[i], k = 2*j; + if(k < n) { + ans += (long)prev[k] * (hash[k] - prev[k] - (j == 0)); + } + } + return ans % mod; + } +};