2022-03-27 18:27:43 +08:00
Given two < strong > sorted 0-indexed< / strong > integer arrays < code > nums1< / code > and < code > nums2< / code > as well as an integer < code > k< / code > , return < em > the < / em > < code > k< sup > th< / sup > < / code > < em > (< strong > 1-based< / strong > ) smallest product of < / em > < code > nums1[i] * nums2[j]< / code > < em > where < / em > < code > 0 < = i < nums1.length< / code > < em > and < / em > < code > 0 < = j < nums2.length< / code > .
< p > < / p >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 1:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > nums1 = [2,5], nums2 = [3,4], k = 2
< strong > Output:< / strong > 8
< strong > Explanation:< / strong > The 2 smallest products are:
- nums1[0] * nums2[0] = 2 * 3 = 6
- nums1[0] * nums2[1] = 2 * 4 = 8
The 2< sup > nd< / sup > smallest product is 8.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 2:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > nums1 = [-4,-2,0,3], nums2 = [2,4], k = 6
< strong > Output:< / strong > 0
< strong > Explanation:< / strong > The 6 smallest products are:
- nums1[0] * nums2[1] = (-4) * 4 = -16
- nums1[0] * nums2[0] = (-4) * 2 = -8
- nums1[1] * nums2[1] = (-2) * 4 = -8
- nums1[1] * nums2[0] = (-2) * 2 = -4
- nums1[2] * nums2[0] = 0 * 2 = 0
- nums1[2] * nums2[1] = 0 * 4 = 0
The 6< sup > th< / sup > smallest product is 0.
< / pre >
2023-12-09 18:42:21 +08:00
< p > < strong class = "example" > Example 3:< / strong > < / p >
2022-03-27 18:27:43 +08:00
< pre >
< strong > Input:< / strong > nums1 = [-2,-1,0,1,2], nums2 = [-3,-1,2,4,5], k = 3
< strong > Output:< / strong > -6
< strong > Explanation:< / strong > The 3 smallest products are:
- nums1[0] * nums2[4] = (-2) * 5 = -10
- nums1[0] * nums2[3] = (-2) * 4 = -8
- nums1[4] * nums2[0] = 2 * (-3) = -6
The 3< sup > rd< / sup > smallest product is -6.
< / pre >
< p > < / p >
< p > < strong > Constraints:< / strong > < / p >
< ul >
< li > < code > 1 < = nums1.length, nums2.length < = 5 * 10< sup > 4< / sup > < / code > < / li >
< li > < code > -10< sup > 5< / sup > < = nums1[i], nums2[j] < = 10< sup > 5< / sup > < / code > < / li >
< li > < code > 1 < = k < = nums1.length * nums2.length< / code > < / li >
< li > < code > nums1< / code > and < code > nums2< / code > are sorted.< / li >
< / ul >