1726.同积元组

        这道题的话,很有意思,我差一点就连题解看不懂了。首先统计数组中所有两个元素相乘的个数,然后你知道的,如果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

你可能感兴趣的:(题解,力扣,算法,leetcode)