Class Solution
java.lang.Object
g1501_1600.s1577_number_of_ways_where_square_of_number_is_equal_to_product_of_two_numbers.Solution
1577 - Number of Ways Where Square of Number Is Equal to Product of Two Numbers.<p>Medium</p>
<p>Given two arrays of integers <code>nums1</code> and <code>nums2</code>, return the number of triplets formed (type 1 and type 2) under the following rules:</p>
<ul>
<li>Type 1: Triplet (i, j, k) if <code>nums1[i]<sup>2</sup> == nums2[j] * nums2[k]</code> where <code>0 <= i < nums1.length</code> and <code>0 <= j < k < nums2.length</code>.</li>
<li>Type 2: Triplet (i, j, k) if <code>nums2[i]<sup>2</sup> == nums1[j] * nums1[k]</code> where <code>0 <= i < nums2.length</code> and <code>0 <= j < k < nums1.length</code>.</li>
</ul>
<p><strong>Example 1:</strong></p>
<p><strong>Input:</strong> nums1 = [7,4], nums2 = [5,2,8,9]</p>
<p><strong>Output:</strong> 1</p>
<p><strong>Explanation:</strong> Type 1: (1, 1, 2), nums1[1]<sup>2</sup> = nums2[1] * nums2[2]. (4<sup>2</sup> = 2 * 8).</p>
<p><strong>Example 2:</strong></p>
<p><strong>Input:</strong> nums1 = [1,1], nums2 = [1,1,1]</p>
<p><strong>Output:</strong> 9</p>
<p><strong>Explanation:</strong> All Triplets are valid, because 1<sup>2</sup> = 1 * 1.</p>
<p>Type 1: (0,0,1), (0,0,2), (0,1,2), (1,0,1), (1,0,2), (1,1,2). nums1[i]<sup>2</sup> = nums2[j] * nums2[k].</p>
<p>Type 2: (0,0,1), (1,0,1), (2,0,1). nums2[i]<sup>2</sup> = nums1[j] * nums1[k].</p>
<p><strong>Example 3:</strong></p>
<p><strong>Input:</strong> nums1 = [7,7,8,3], nums2 = [1,2,9,7]</p>
<p><strong>Output:</strong> 2</p>
<p><strong>Explanation:</strong> There are 2 valid triplets.</p>
<p>Type 1: (3,0,2). nums1[3]<sup>2</sup> = nums2[0] * nums2[2].</p>
<p>Type 2: (3,0,1). nums2[3]<sup>2</sup> = nums1[0] * nums1[1].</p>
<p><strong>Constraints:</strong></p>
<ul>
<li><code>1 <= nums1.length, nums2.length <= 1000</code></li>
<li><code>1 <= nums1[i], nums2[i] <= 10<sup>5</sup></code></li>
</ul>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionintcount(int[] a, int[] b) intnumTriplets(int[] nums1, int[] nums2)
-
Constructor Details
-
Solution
public Solution()
-
-
Method Details
-
numTriplets
public int numTriplets(int[] nums1, int[] nums2) -
count
public int count(int[] a, int[] b)
-