楼主:
Meaverzt (Meaverzt)
2025-02-06 10:51:10题目
给一个里面有很多不同数字的阵列
我们要找里面有几组tuple {a,b,c,d}符合a!=b!=c!=d且ab=cd
思路
先去算nums里面数字两两相乘乘积出现的频率塞进一个字典
假设一个乘积出现n次
我们要取2组出来排列有C(n,2)×2!种可能
阿两组里面ab可以互换cd也可以互换所以组数要再×4
总共就是C(n,2)×8=4n(n-1)组
遍历字典每一项加起来就是答案了
Code:
class Solution(object):
def tupleSameProduct(self, nums):
dict={}
for i in range(len(nums)-1):
for j in range(i+1,len(nums)):
product=nums[i]*nums[j]
if product in dict:
dict[product]+=1
else:
dict[product]=1
ans=0
for i in dict:
ans+=4*(dict[i]-1)*dict[i]
return ans
我变量名称都取超烂
呜哇哇阿阿