<?php
/**
* 寻找两个有序数组的中位数
*
* User: hihone
* Date: 2019/1/31
* Time: 16:32
* Description:
* 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。
你可以假设 nums1 和 nums2 不会同时为空。
*/
function findMedianSortedArrays(array $nums1, array $nums2) {
$array = array_merge($nums1, $nums2);
sort($array);
$len = count($array);
#判断是奇数还是偶数
if ($len % 2 == 0) {
$index = $len / 2 - 1;
$value1 = $array[$index];
$index++;
$value2 = $array[$index];
$middle = ($value1 + $value2) / 2;
} else {
$index = ceil($len / 2) - 1;
$middle = $array[$index];
}
return $middle;
}
$nums1 = [100000];
$nums2 = [100001];
echo findMedianSortedArrays($nums1, $nums2);