这道题的话,很有意思,我差一点就连题解看不懂了。首先统计数组中所有两个元素相乘的个数,然后你知道的,如果cnt是1,会被淘汰的。所以就不用担心这方面的问题。ok,看下面就是,再从相同乘积的元组中选出2个来,接着乘以8,因为4个元素的元组的排列共有8种,因为题目中的a*b和c*d,ab和cd是绑定的,所以顺序就是2*2+2*2=8,希望你不会和我一样卡在这里,哈哈。所以公式就是v*(v-1)/2*8*
代码:
class Solution:
def tupleSameProduct(self, nums: List[int]) -> int:
n=len(nums)
cnt=Counter([nums[i]*nums[j] for i in range(n) for j in range(i+1,n)])
ans=0
for i,v in cnt.items():
ans+=v*(v-1)*4
return ans