1577. Number of Ways Where Square of Number Is Equal to Product of Two Numbers (Medium) - TengnanYao/daily_leetcode GitHub Wiki
class Solution(object):
def numTriplets(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: int
"""
n1, n2 = len(nums1), len(nums2)
h1, h2 = {}, {}
result = 0
for i in range(n1):
for j in range(i + 1, n1):
p = nums1[i] * nums1[j]
h1[p] = h1.get(p, 0) + 1
for num in nums2:
p = num * num
if h1.get(p):
result += h1[p]
for i in range(n2):
for j in range(i + 1, n2):
p = nums2[i] * nums2[j]
h2[p] = h2.get(p, 0) + 1
for num in nums1:
p = num * num
if h2.get(p):
result += h2[p]
return result