寻找两个正序数组的中位数-题解
寻找两个正序数组的中位数-题解
题目描述
这是leetcode伤的第4题

题目解析
首先仔细看一下这个题目我们不难发现,其中最重要的一点就是两个数组为正序,由此我们不难想出一下两个解题思路:
- 第一个解题思路就是先将两个数组合并排序,然后再进行取中位数,但是有个问题是,如果我们只是用普通的排序来做这道题的话,题目中给的正序就是无效条件了,并且性能肯定也会大大下降。在经典的几大排序中,有一个排序的特点就与这个有序数组合并有关,那就是归并排序,所以我们这里最优是用的排序算法就是归并排序。
- 第二个题解思路,因为两个数组是有序的并且他们的长度也是已经知道的,所以我们也可以不使用排序,我们可以维护两个指针通过这个指针去找到中位数
归并解法
1 | func findMedianSortedArrays(nums1 []int, nums2 []int) float64 { |
- Post title: 寻找两个正序数组的中位数-题解
- Create time: 2021-02-22 16:08:09
- Post link: post/47313.html
- Copyright notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments