日期:2023-04-26 15:33:47 来源:腾讯云
(资料图)
给定两个大小分别为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的 中位数 。
算法的时间复杂度应该为 O(log (m+n)) 。
这道题要求找出两个已排序数组的中位数,且算法的时间复杂度应为 O(log(m+n))。其中,O 表示时间复杂度的上限,log 表示对数,m 和 n 分别表示两个数组的大小。
我们可以使用二分查找算法来解决这个问题。首先,我们将两个数组分别记为 nums1 和 nums2。为了方便,我们假设 nums1 的长度小于等于 nums2 的长度。
我们可以在 nums1 中选取一个位置 i,在 nums2 中选取一个位置 j,使得 i+j=(m+n+1)/2,其中 m 和 n 分别是两个数组的长度。如果我们能够保证:
nums1[i-1] <= nums2[j] 且 nums2[j-1] <= nums1[i]
那么,我们就已经将 nums1 和 nums2 分成了两个部分,且第一部分中的所有元素都小于第二部分中的所有元素。此时,中位数即为:
当 m+n 为奇数时,中位数为 max(nums1[i-1],nums2[j-1]); 当 m+n 为偶数时,中位数为 (max(nums1[i-1],nums2[j-1])+min(nums1[i],nums2[j]))/2。
为了保证上述条件成立,我们可以使用二分查找算法在 [0, m] 中查找合适的 i 值。在每次二分查找时,我们可以计算出 j 的值,然后检查上述条件是否成立。如果成立,则返回中位数;否则,我们就需要调整 i 的值,以便满足上述条件。具体地,如果 nums1[i-1] > nums2[j-1],则我们需要将 i 的值减小,否则将 i 的值增大。时间复杂度为 O(log(min(m,n)))。
下面是代码实现:
class Solution: def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float: if len(nums1) > len(nums2): nums1, nums2 = nums2, nums1 m, n = len(nums1), len(nums2) left, right = 0, m while left <= right: i = (left + right) // 2 j = (m + n + 1) // 2 - i if i < m and nums2[j-1] > nums1[i]: left = i + 1 elif i > 0 and nums1[i-1] > nums2[j]: right = i - 1 else: if i == 0: max_left = nums2[j-1] elif j == 0: max_left = nums1[i-1] else: max_left = max(nums1[i-1], nums2[j-1]) if (m + n) % 2 == 1: return max_left if i == m: min_right = nums2[j] elif j == n: min_right = nums1[i] else: min_right = min(nums1[i], nums2[j]) return (max_left + min_right) / 2
标签:
下一篇: 最后一页
算法-寻找两个正序数组的中位数
陕西彬州龙高镇:铆紧责任链条助推项目高质量发展
东航投入1.39万航班迎接“最热五一”_微头条
【世界独家】荣丰控股:关于重大资产出售暨关联交易报告书(草案)
环球快消息!华海清科(688120):CMP及减薄等设备验证进展顺利 全年新签订单超35亿元
今日热门!日本NTT都科摩将投资600亿日元设立运营元宇宙的新公司
【环球播资讯】火爆开幕!2023江西·靖安生活年来了
全球微头条丨从三个维度的实际过会率看,注册制下上市并不更容易丨资本观察
如何举办爵士主题派对_好朋友生孩子了送什么礼物好
全球新资讯:抗穿刺性提高近50%!
“迷你基”业绩居前规模逆袭!也有基金遭遇越涨越卖 天天热讯
4.25全国儿童预防接种日 | 主动接种疫苗 共享健康生活
怀柔2023年农村地区“减煤换煤”方案公布→|世界热资讯
皇庭国际(000056)4月25日主力资金净卖出2630.57万元
天天热点!赛为智能2022年减亏1.23亿元 律师:投资者宜尽早索赔
日元货币符号怎么输入 日元货币符号
上海杭州间或建世界首条超级高铁老外羡慕!美国第一条高铁“凉凉” 资金缺口大
专项债发行快马加鞭,有力支撑基建投资-天天新资讯
斗破苍穹之彩鳞授欲uzi_斗破苍穹之彩鳞授欲
每日讯息!“五一”前夕,多条航线在四川上线
【呼声与回应】宽近20米的村道坑坑洼洼,三原县土官村民盼修路
北京推进“一业一证”改革 首个场景餐饮店行业上线
当前速讯:1-3青岛海牛,球迷攻陷国安官微:斯坦利下课,赶紧退年票
全球今头条!九年级语文上学期教学计划部编版_九年级语文上学期教学计划
沪股通现身8只个股龙虎榜 环球聚焦