前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >力扣4-寻找两个正序数组的中位数

力扣4-寻找两个正序数组的中位数

原创
作者头像
后端码匠
修改2021-08-18 14:23:36
3010
修改2021-08-18 14:23:36
举报
文章被收录于专栏:后端码匠

题目描述

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。

实例

示例 1:

输入:nums1 = 1,3, nums2 = 2

输出:2.00000

解释:合并数组 = 1,2,3 ,中位数 2

示例 2:

输入:nums1 = 1,2, nums2 = 3,4

输出:2.50000

解释:合并数组 = 1,2,3,4 ,中位数 (2 + 3) / 2 = 2.5

示例 3:

输入:nums1 = 0,0, nums2 = 0,0

输出:0.00000

示例 4:

输入:nums1 = [], nums2 = 1

输出:1.00000

示例 5:

输入:nums1 = 2, nums2 = []

输出:2.00000

解题方法

合并加sort

代码语言:txt
复制
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int numl1 = nums1.length;
        int numl2 = nums2.length;
        double[] result = new double[numl1 + numl2];
        for (int i = 0; i < numl1; i++) {
            result[i] = nums1[i];
        }
        for (int i = 0; i < numl2; numl1++) {
            result[numl1] = nums2[i];
            i++;
        }
        Arrays.sort(result);
        if (result.length % 2 == 0) return (result[result.length / 2] + result[result.length / 2 - 1]) / 2;
        return result[result.length / 2];

    }

二分查找

代码语言:txt
复制

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 实例
  • 解题方法
    • 合并加sort
      • 二分查找
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档