【LeetCode】寻找两个有序数组的中位数

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。

请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。

你可以假设 nums1 和 nums2 不会同时为空 

 1 class Solution {
 2 
 3     /**
 4      * @param Integer[] $nums1
 5      * @param Integer[] $nums2
 6      * @return Float
 7      */
 8     function findMedianSortedArrays($nums1, $nums2) {
 9         $com_arr = array_merge($nums1,$nums2);
10         asort($com_arr);
11         $com_arr = array_values($com_arr);
12         if(count($com_arr)%2 == 0){
13             //偶数
14             $num = count($com_arr)/2;
15             $result = ($com_arr[$num] + $com_arr[$num-1])/2;
16         }else{
17             //奇数
18             $num = floor(count($com_arr)/2);
19             $result = $com_arr[$num];
20         }
21         return floatval($result);
22     }
23 }

 

posted @ 2019-11-26 14:45  hupcMaster  阅读(178)  评论(0编辑  收藏  举报