先count所有数字
然后再maintain一个counter
每次的答案就看 左边的num*2有几个 乘上 右边的num*2有几个
只是0就要 多减1
这还真没想到
def specialTriplets(self, nums: List[int]) -> int:
all_cnt = Counter(nums)
cur_cnt = defaultdict(int)
rets = 0
mod = 10**9 + 7
for num in nums:
if num==0:
rets = (rets + (cur_cnt[num*2]*(all_cnt[num*2]-cur_cnt[num*2]-
1))) % mod
else:
rets = (rets + (cur_cnt[num*2]*(all_cnt[num*2]-cur_cnt[num*2])
)) % mod
cur_cnt[num] += 1
return rets