Leetcode -> 4 寻找两个正序数组的中位数

题目

Leetcode -> 4 寻找两个正序数组的中位数_第1张图片

解题思路算法

为了解决这个问题,我们需要理解 “中位数的作用是什么”。在统计中,中位数被用来:

将一个集合划分为两个长度相等的子集,其中一个子集中的元素总是大于另一个子集中的元素。

这其中又分为偶数组和奇数组:

奇数组: [2 3 5] 对应的中位数为3

偶数组: [1 4 7 9] 对应的中位数为 (4 + 7) /2 = 5.5
先解释下“割”

我们通过切一刀,能够把有序数组分成左右两个部分,切的那一刀就被称为割(Cut),割(Cut)的左右会有两个元素,分别是左边最大值和右边最小值。

我们定义LMax= Max(LeftPart),RMin = Min(RightPart)。

割可以割在两个数中间,也可以割在1个数上,如果割在一个数上,那么这个数即属于左边,也属于右边

奇数组: [2 3 5] 对应的中位数为3,假定割(Cut)在3上,我们可以把3分为2个: [2 (3/3) 5]

因此LMax=3, RMin=3

偶数组: [1 4 7 9] 对应的中位数为 (4 + 7) /2 = 5.5,假

你可能感兴趣的:(leetcode算法题库,leetcode,算法,排序算法)