Re: [閒聊] 每日leetcode

作者: 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
我變數名稱都取超爛
嗚哇哇阿阿

Links booklink

Contact Us: admin [ a t ] ucptt.com