1. 程式人生 > >LeeCode中的MedianofTwoSortedArrays(PHP實現)

LeeCode中的MedianofTwoSortedArrays(PHP實現)

<?php
/**
 * Created by PhpStorm.
 * User: jiangyu01
 * Date: 2018/10/1
 * Time: 11:13
 * Title:
 * 給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。
 */

$arr1 = range(3,9);     //構建有序陣列
$arr2 = range(4,12);

/*
 * 中位數函式
 */
function MedianofTwoSortedArrays($arrA = [], $arrB = []) {
    //空值判斷
    if (empty($arrA) && empty($arrB)) {
        echo '引數陣列不能同時為空!'.PHP_EOL;
    }
    $arrC = array_merge($arrA,$arrB);       //數組合並
    sort($arrC);                    // 陣列升序排序
    foreach ($arrC as $key){                //列印陣列
        echo $key.' ';
    }
    $arr_size = count($arrC);               //計算陣列大小
    if ($arr_size <= 1){                    //當陣列容量為一的時候直接返回
        echo '中位數為:'.$arrC[$arr_size].PHP_EOL;
    }else{
        $bin = count($arrC) / 2;            //取中值下標
        if (is_int($bin)){
            echo  '中位數為:'.(($arrC[$bin]+$arrC[$bin+1])/2).PHP_EOL;
        }else{
            $bin = ceil($bin);              //取中值下標
            echo '中位數為:'.$arrC[$bin].PHP_EOL;
        }
    }
}

MedianofTwoSortedArrays($arr1, $arr2);