今晚班组聚餐,喝了半斤白酒后,我居然靠模拟做出一道Leetcode中等题,纪念一下
1577. 数的平方等于两数乘积的方法数
class Solution:
def numTriplets(self, nums1: List[int], nums2: List[int]) -> int:
h = {}
for i in range(len(nums1)):
for j in range(len(nums1)):
if i != j and nums1[i]*nums1[j] not in h.keys():
h[nums1[i]*nums1[j]] = 1
elif i != j and nums1[i]*nums1[j] in h.keys():
h[nums1[i]*nums1[j]] += 1
h1 = {}
for i in range(len(nums2)):
for j in range(len(nums2)):
if i != j and nums2[i]*nums2[j] not in h1.keys():
h1[nums2[i]*nums2[j]] = 1
elif i != j and nums2[i]*nums2[j] in h1.keys():
h1[nums2[i]*nums2[j]] += 1
cnt = 0
for i in range(len(nums1)):
if nums1[i]**2 in h1.keys():
cnt += h1[nums1[i]**2]
for i in range(len(nums2)):
if nums2[i]**2 in h.keys():
cnt += h[nums2[i]**2]
return cnt//2