• PHP算法之寻找两个有序数组的中位数


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

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

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

    示例 1:

    nums1 = [1, 3]
    nums2 = [2]

    则中位数是 2.0
    示例 2:

    nums1 = [1, 2]
    nums2 = [3, 4]

    则中位数是 (2 + 3)/2 = 2.5

    来源:力扣(LeetCode)

    代码献上 一定还有更好的解法

    class Solution {

        /**
         * @param Integer[] $nums1
         * @param Integer[] $nums2
         * @return Float
         */
        function findMedianSortedArrays($nums1, $nums2) {
     
            $n = count($nums1) + count($nums2);  //一共有多少个数据
        $arr = [];  //合并数组
            $gav = 0; //中位数
     
            $arr = array_merge($nums1,$nums2); //合并数组
     
            sort($arr); //排序
     
            if($n%2){ //判断奇数还是偶数
                $gav = $arr[intval($n/2)];
            }else{
                $gav = ($arr[$n/2] + $arr[$n/2 - 1])/2;
            }
            return $gav;
        }
    }
  • 相关阅读:
    sql中table用法
    sql group by
    C#excel导入
    手写简单JDBC
    连接池+事务
    mysql+jdbc
    mysql(多表)
    jsp标签+jstl
    页面跳转+路径问题
    ajax 动态获取数据库中的值
  • 原文地址:https://www.cnblogs.com/corvus/p/11954351.html
Copyright © 2020-2023  润新知