leetcode-4. 寻找两个正序数组的中位数

简介: 时间复杂度:O(n) 其中n表示的是两个有序数组合并后的排序时间

7ba4f0bfc56e48daaa5095be0c1d761b.png


题目链接:https://leetcode.cn/problems/median-of-two-sorted-arrays/

思路

方法:合并数组

将两个有序数组合并成一个数组并将其排序,只需要判断数组长度奇偶。

代码实现


func findMedianSortedArrays(nums1 []int, nums2 []int) float64 {
  //合并数组
    nums1 = append(nums1, nums2...)
    //用go自带的排序
    sort.Ints(nums1)
    //判断奇偶
    if len(nums1) & 1 == 1{
        return float64(nums1[(len(nums1) / 2)])
    }
    return float64(nums1[len(nums1) / 2] + nums1[len(nums1) / 2 - 1]) / 2.0
}

036a701b020649ca96f528ad775d91ff.png


复杂度分析


  • 时间复杂度:O(n) 其中n表示的是两个有序数组合并后的排序时间


  • 空间复杂度:O(n + m) 其中n表示第一个有序数组长度,m表示第二个有序数组长度
目录
相关文章
|
9月前
|
算法
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
LeetCode算法题---无重复字符的最长子串、寻找两个正序数组的中位数(三)
72 0
|
9月前
|
算法
leetcode代码记录(寻找两个正序数组的中位数
leetcode代码记录(寻找两个正序数组的中位数
60 2
|
8月前
|
SQL 算法 数据挖掘
LeetCode 第四题:寻找两个正序数组的中位数 【4/1000 】【python + go】
LeetCode 第四题:寻找两个正序数组的中位数 【4/1000 】【python + go】
|
9月前
|
算法
【力扣】4. 寻找两个正序数组的中位数
【力扣】4. 寻找两个正序数组的中位数
|
9月前
|
存储 算法
《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数
《LeetCode 热题 HOT 100》——寻找两个正序数组的中位数
|
9月前
|
存储 算法 Go
LeetCode第四题: 寻找两个正序数组的中位数
给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。
|
9月前
|
算法 测试技术 C#
【map】【滑动窗口】【优先队列】LeetCode480滑动窗口中位数
【map】【滑动窗口】【优先队列】LeetCode480滑动窗口中位数
|
5月前
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
6月前
|
Python
【Leetcode刷题Python】剑指 Offer 32 - III. 从上到下打印二叉树 III
本文介绍了两种Python实现方法,用于按照之字形顺序打印二叉树的层次遍历结果,实现了在奇数层正序、偶数层反序打印节点的功能。
76 6
|
6月前
|
搜索推荐 索引 Python
【Leetcode刷题Python】牛客. 数组中未出现的最小正整数
本文介绍了牛客网题目"数组中未出现的最小正整数"的解法,提供了一种满足O(n)时间复杂度和O(1)空间复杂度要求的原地排序算法,并给出了Python实现代码。
146 2