zoukankan      html  css  js  c++  java
  • LeetCode 4. 寻找两个有序数组的中位数

    LeetCode 4. 寻找两个有序数组的中位数

    给定两个大小为 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


    知识点:

    • sort(); // 升序排列
    • array_merge(); // 数组合并
    • 数 & 1 == 1 奇数,数 & 1 == 0 偶数
    • >> 1, 整除 2
    • sprinf('%.1f', 12.231); // 格式化返回数据
    • round(12.213, 1); // 格式化返回数据
    • printf('%.1f', 12.213); // 格式化输出

    PHP代码:

    function findMedianSortedArrays($nums1, $nums2) {
            $nums = array_merge($nums1, $nums2);
            sort($nums);
            $ans = count($nums) & 1 == 1 ? $nums[count($nums) - 1 >> 1] : ($nums[count($nums) >> 1] + $nums[(count($nums) >> 1) - 1]) / 2;
            return sprintf('%.1f', $ans);
        }
  • 相关阅读:
    Maven ==> 简介
    IDEA结合GIT的使用
    Shell ==> 基础
    Dubbo ==> 简介
    iptables防火墙
    文件系统对比
    supervisord部署
    inotify+rsync安装配置
    前端插件网址
    Nginx高级玩法
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/11768077.html
Copyright © 2011-2022 走看看