LeetCode 2040. 两个有序数组的第 K 小乘积(嵌套二分查找)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 2040. 两个有序数组的第 K 小乘积(嵌套二分查找)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你兩個 從小到大排好序 且下標從 0 開始的整數數組 nums1 和 nums2 以及一個整數 k ,請你返回第 k (從 1 開始編號)小的 nums1[i] * nums2[j] 的乘積,其中 0 <= i < nums1.length 且 0 <= j < nums2.length 。
示例 1: 輸入:nums1 = [2,5], nums2 = [3,4], k = 2 輸出:8 解釋:第 2 小的乘積計算如下: - nums1[0] * nums2[0] = 2 * 3 = 6 - nums1[0] * nums2[1] = 2 * 4 = 8 第 2 小的乘積為 8 。示例 2: 輸入:nums1 = [-4,-2,0,3], nums2 = [2,4], k = 6 輸出:0 解釋:第 6 小的乘積計算如下: - 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 第 6 小的乘積為 0 。示例 3: 輸入:nums1 = [-2,-1,0,1,2], nums2 = [-3,-1,2,4,5], k = 3 輸出:-6 解釋:第 3 小的乘積計算如下: - nums1[0] * nums2[4] = (-2) * 5 = -10 - nums1[0] * nums2[3] = (-2) * 4 = -8 - nums1[4] * nums2[0] = 2 * (-3) = -6 第 3 小的乘積為 -6 。提示: 1 <= nums1.length, nums2.length <= 5 * 10^4 -10^5 <= nums1[i], nums2[j] <= 10^5 1 <= k <= nums1.length * nums2.length nums1 和 nums2 都是從小到大排好序的。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/kth-smallest-product-of-two-sorted-arrays
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 二分查找答案 ans,檢查兩個數組組成的乘積 <= ans 的個數 ct 是否滿足 k 個,具有單調性
1788 ms 91.9 MB C++
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 2040. 两个有序数组的第 K 小乘积(嵌套二分查找)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 协程
- 下一篇: LeetCode 6038. 向表达式添