美文网首页
Leetcode4-求两个有序数组的中位数

Leetcode4-求两个有序数组的中位数

作者: 西5d | 来源:发表于2019-01-05 21:04 被阅读20次

LeetCode题目编号和以前不一致了,编号可能会不对应。回到问题,描述有两个有序的数组,找数组的中位数如2,3,4,5,6 ,中位数为4;考虑的情况有,数组元素总数为奇数,则相当于排序后的中间位置数,如有(m+n)%2==1,有mid=(m+n)/2;如果数组元素总数为偶数,则相当于中间两个数的平均值,如有(m+n)%2==0,即是(m+n)/2(m+n)/2-1两数字的平均值,用double表示,java默认为double,不用强转。
以下代码题目思路如下:因为是有序的,合并为一个数组,长度m+n,在按照长度的奇偶判断中位数,算法时间复杂度O(m+n),申请3个标记,分别给两个原始数组,以及新数组,比较原始数组大小放入新数组,对应的标记累加,重点注意各个数组长度的边界条件。

 int[] arr = new int[nums1.length + nums2.length];
        int i = 0, j = 0, k = 0;
        while (j < nums1.length && k < nums2.length) {
            if (nums1[j] < nums2[k]) {
                arr[i] = nums1[j];
                i++;
                j++;
            } else {
                arr[i] = nums2[k];
                i++;
                k++;
            }
        }

        while (j < nums1.length) {
            arr[i] = nums1[j];
            i++;
            j++;
        }

        while (k < nums2.length) {
            arr[i] = nums2[k];
            i++;
            k++;
        }

        double mid;
        if (arr.length % 2 == 0) {
            mid = (arr[arr.length / 2 - 1] + arr[arr.length / 2]) / 2.0;
        } else {
            mid = arr[arr.length / 2];
        }

        return mid;

相关文章

  • Leetcode4-求两个有序数组的中位数

    LeetCode题目编号和以前不一致了,编号可能会不对应。回到问题,描述有两个有序的数组,找数组的中位数如2,3,...

  • 算法题之--《寻找两个有序数组的中位数》

    这是LeetCode上的一道算法题 给定两个有序数组,求两个有序数组的中位数,要求时间复杂度O(log(m + n...

  • 两个排序数组的中位数

    两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组nums1和nums2。 请找出这两个有序数组的中位数...

  • 算法

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组中的中位数

  • 【LeetCode】4. Median of Two Sorte

    题意 找到两个有序数组的中位数 解答一(递归,时间复杂度O(logk)) 首先理解题意两个关键点:有序数组和中位数...

  • 2018-11-29 寻找两个有序数组的中位数

    题目: 4. 寻找两个有序数组的中位数 解法: 解法一:最简单的办法就是合并两个有序数组, 因为数组有序, 所以很...

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

    分析 已知两个有序数组,找到两个数组合并后的中位数。 解法一 简单粗暴,先将两个数组合并,两个有序数组的合并也是归...

  • 2018 iOS面试题---算法相关

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中的中位数 一、字符串反...

  • 算法相关

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中的中位数 一、字符串反...

  • 算法相关

    字符串反转 链表反转 有序数组合并 Hash算法 查找两个子视图的共同父视图 求无序数组当中的中位数 一、字符串反...

网友评论

      本文标题:Leetcode4-求两个有序数组的中位数

      本文链接:https://www.haomeiwen.com/subject/asbdrqtx.html