(资料图片)
给定两个大小分别为 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
标签:
给定两个大小分别为m和n的正序(从小到大)数组 nums1和 nums2。请你找出并返回这两个正序数组的中位数。
1、加减运算是人类最早掌握的两种数学运算,且载于人类最早的文字记载中。2、古埃及的阿默斯纸草书就载有加
团风警方24小时内将犯罪嫌疑人抓捕归案---“警察同志,有人拿着烟来我这里卖,但我觉得他的烟来路不正,像
作为世界重要的资金收付清算基础设施,举世银行金融电信协会(SWIFT)近来发布的人民币追寻月度陈述显现,202
上海的遗憾,碧桂园、中海在杭州补上了,土拍,碧桂园,楼面价,上海市,杭州市,中海地产,商品住房,中国海外发展
直播吧4月25日讯数据统计显示,黄博文是亚冠改制后出场次数最多的球员。前国脚黄博文今天宣布退役,这位中
4月25日晚间5家上市公司发布重大利好消息,5家公司涉及业绩增长,具体涉及的上市公司如下:1 欢乐家:一季
新能源还能反弹吗?今天各大指数继续回调,上证指数跌0 32%,深证成指、创业板指、科创50指跌幅均超过1%,
捷捷微电:捷捷微电第四届监事会第二十八次会议决议公告
据《韩民族新闻》23日报道,美国科技企业针对韩国三星电子的知识产权侵权案件终审判决出炉,三星电子被罚3
龙高股份(605086)04月25日在投资者关系平台上答复了投资者关心的问题。
在部署今年的重点工作时,《2023年泉州市政府工作报告》指出,要坚持“两个毫不动摇”,传承弘扬“晋江...
亮进度、晒成效、找差距市检察院党组成员、检委会专职委员、各内设机构负责人,各基层检察院检察长参加会议
1、按件收费收取(1)无财产争议:6000元-20000元之间;(2)法律文书:600元-2000元之间;(3)律师见证:
今天小编肥嘟来为大家解答以上的问题。5角梅花硬币价格表,小明统计了自己储蓄罐里有125个硬币其中一元的硬
原油带动能化板块集体反弹,隔夜市场美原油涨幅超过1%,进入5月,OPEC成员国执行减产协议,供需格局发生实
有的球星已经悄然退役,有的球星已经变成了辅助的角色,而詹姆斯依然有能力决定比赛的胜负,而且还是在戴维
相信很多朋友都收到了这个消息:企业微信正式开始按粉丝数进行收费。针对这个消息,SaaS高管群的CEO们也展
近日,北京市公安局公安交通管理局发出提醒:此前疫情期间,为便利广大市民群众办理车驾管业务而推出的...
预订价为11 89万元吉利ICON主角开启预订
X 关闭
X 关闭